在摆弄数组的过程中,我发现了这一点。
为什么以下三个陈述之间存在显着差异:
[1,2]+[3,4];
[1,2].toString()+[3,4].toString();
[1,2].join(',')+[3,4].join(',');
如果[1,2]+[1,2]
执行与转换为字符串然后加入两个字符串相同,那么它们的表现应该有点相似
此问题的灵感来自此answer
答案 0 :(得分:4)
它可能与隐式和显式强制有关。
对于[1,2]+[3,4]
,解释程序必须弄清楚string
是所需的输出。
对于[1,2].toString()+[3,4].toString();
和[1,2].join(',')+[3,4].join(',');
,您已经告诉口译员它正在使用字符串。
最后两行之间的差异几乎可以忽略不计。
最后,即使你这样做了一百万次,你也不会真正注意到差异。