对于字符串,[x,y,z].join('')
真的比 x + y + z
更快吗?
在 join() 更快的印象下,我开始通过我的代码使用它而不是 +,然后我在 Google Analytics 代码中遇到了以下行:
ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
假设 Google 的编码人员是最有知识的,这让我感到奇怪。当然,该行每次加载页面只会运行一次,可以说任何速度差异都可以忽略不计。但还是?
最佳答案
用于连接字符串的数组 .join()
方法 (-trick) 起源于当时网站像很多一样在 Internet Explorer 上运行。对于 IE6 + 7,它非常真实,比 .join()
比使用 +
运算符快多,因为字符串操作的行为非常糟糕在 IE 中。
对于其他浏览器,性能差异并不大,所以使用 .join()
是个好建议(再次强调,那时候)。如今,大多数引擎都会大量优化字符串操作,除非您认为您的任何代码经常在 IE6+7 中运行,否则您应该只使用 +
。
关于javascript - 对于字符串, [x,y,z].join ('' ) 真的比 x + y + z 快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8626991/