我们想知道thread当你想要获得第一个角色时,使用.substr(0,1)
和使用.charAt(0)
之间是否存在真正的差异(实际上,它可以适用于您只有一个字符的任何情况。
其中每一个都比另一个更快吗?
感谢您的回答!
最高
答案 0 :(得分:16)
衡量它是关键!
转到http://jsperf.com/substr-or-charat进行自我评估。
substr(0,1)在我的机器上以每秒21,100,301次操作运行,charAt(0)每秒运行550,852,974次。
我怀疑charAt在内部将字符串作为数组访问,而不是拆分字符串。
如注释中所示,使用string [0]直接访问char比使用charAt(0)稍快一些。
答案 1 :(得分:5)
除非您的整个脚本基于快速字符串操作的需要,否则我根本不担心性能方面。我使用charAt()
是因为它是可读的,也是该语言提供的最具体的工具。此外,substr()
并非严格标准,虽然任何新的ECMAScript实现都不太可能省略它,但它可能会发生。基于标准的str.charAt(0)
替代方案为str.substring(0, 1)
和str.slice(0, 1)
,而ECMAScript 5实施方案为str[0]
。