将多个字符串拼接在一块儿,一般有如下三种方法,在实践中都是常常用到的。chrome
使用字符串链接符 ‘+’, 'string1' + 'string2' + ...
数组
使用数组的join
函数。先把字符串写入临时数组中,而后调用数组的join
方法,将其中的字符串元素链接起来。浏览器
使用字符串的concat
函数。jsp
var concat1 = function(str1, str2){ return str1 + str2; };
join
函数var concat2 = function(str1, str2){ var arr = []; arr.push(str1); arr.push(str2); return arr.join(); };
concat
函数var concat3 = function(str1, str2){ return str1.concat(str2); };
我在本地用Benchmark
对上述两种方法作了性能对比,测试环境为Testing in Chrome 46.0.2490 / Mac OS X 10.10.4,结果以下:函数
concat#+ x 90,483,047 ops/sec ±2.06% (84 runs sampled) concat#array-jion x 12,303,912 ops/sec ±0.90% (82 runs sampled) concat#string-concat x 40,845,196 ops/sec ±0.83% (89 runs sampled) Fastest is concat#+
也就是说在chrome 46下,使用字符串链接符‘+’的效率要高不少。
固然这只是在chrome 46环境下的测试,并不能表明全部的浏览器平台。性能
在jsPerf也有相似的性能测试 https://jsperf.com/concat-vs-...
测试效果以下:测试
到底哪一种方法更高效?这跟各浏览器的引擎有关,根据JavaScript 怎样高效拼接字符串?这篇文章,本身作了个简单概括。(一家之言,没作深刻验证)spa
在旧浏览器(ie7-)下用 join
会更高效。code
在现代浏览器,尽可能用"+"
,更高效。ip
固然,在少数现代浏览器里 “+”
不必定会比 join
快(如,safari 5.0.5,opera 11.10)
自己是字符串数组的,直接 join
会更好。
在"+"
与concat
之间,固然是优选使用"+"
,方便又直观又高效。