【发布时间】:2011-01-15 16:11:50
【问题描述】:
有人知道这两种方法有什么区别吗?
String.prototype.slice
String.prototype.substring
【问题讨论】:
-
这是一个糟糕的 JavaScript 设计示例,我们最终得到了三种方法,它们都做同样的事情,但有不同的怪癖。 IMO
slice是最不意外的行为。 -
IMO 子字符串用于从 idx 到结尾的子字符串一目了然。特别是对于菜鸟
-
根据this website,
slice实际上可以替代substring,没有理由使用它。 -
@AmolMKulkarni 完全不正确。如果您尝试
var a = "asdf".substring(-1);,它将被视为var a = "asdf".substring(0);。没有抛出异常。如果你使用var a = "asdf".substring(2, -1);,它会使用0代替-1(和以前一样),并交换参数,使其行为类似于var a = "asdf".substring(0, 2);。我什至在 IE 8 上尝试了这些,并且毫无例外地得到了结果 -
“我什至在 IE 8 上试过这些”——我喜欢编程。
标签: javascript substring slice substr