在Javascript中检查"开头"子字符串的最佳方法

ith*_*inc 2 javascript

str.indexOf(substr) == 0

str.slice(0, 10) == substr
Run Code Online (Sandbox Code Playgroud)

以上哪两个更好?有没有更好的方法?

Mar*_*ers 6

第一个的性能取决于字符串的长度,str因为它需要扫描整个字符串.如果str很大,可能需要很长时间才能找到子串是否包含在其中.

如果您的输入字符串可能很大,则更喜欢第二个.

另一种选择是:

str.lastIndexOf(substr, 0) == 0
Run Code Online (Sandbox Code Playgroud)

这样可以避免扫描整个字符串并避免创建临时字符串.

如果性能很重要,我建议您根据具体数据进行测量.