这是谷歌String.startsWith()
从闭包库中获取的实现:
goog.string.startsWith = function(str, prefix) {
return str.lastIndexOf(prefix, 0) == 0;
};
我想知道他们为什么选择lastIndexOf
了indexOf
以下事实:
indexOf
在某些情况下速度是原来的两倍。- 浏览器兼容性是一样的。
这与微优化无关,我真的相信:
return str.indexOf(prefix) == 0;
比以下更简单,更清洁并且碰巧更快:
return str.lastIndexOf(prefix, 0) == 0;
在这种情况下如何lastIndexOf
更好?