[] + []和[] .join(',')+ []。join(',')之间的性能差异

时间:2017-07-13 14:20:22

标签: javascript

在摆弄数组的过程中,我发现了这一点。

为什么以下三个陈述之间存在显着差异:

[1,2]+[3,4];

[1,2].toString()+[3,4].toString();

[1,2].join(',')+[3,4].join(',');

enter image description here 如果[1,2]+[1,2]执行与转换为字符串然后加入两个字符串相同,那么它们的表现应该有点相似

此问题的灵感来自此answer

1 个答案:

答案 0 :(得分:4)

它可能与隐式和显式强制有关。

对于[1,2]+[3,4],解释程序必须弄清楚string是所需的输出。

对于[1,2].toString()+[3,4].toString();[1,2].join(',')+[3,4].join(',');,您已经告诉口译员它正在使用字符串。

最后两行之间的差异几乎可以忽略不计。

最后,即使你这样做了一百万次,你也不会真正注意到差异。