【js运算机能系列】拼接字符串的要领及机能比较

将多个字符串拼接在一起,一般有以下三种要领,在实践中都是常常用到的。

  1. 运用字符串连接符 ‘+’, 'string1' + 'string2' + ...

  2. 运用数组的join函数。先把字符串写入暂时数组中,然后挪用数组的join要领,将个中的字符串元素连接起来。

  3. 运用字符串的concat函数。

要领一: 运用字符串连接符 ‘+’

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-…
测试结果以下:

《【js运算机能系列】拼接字符串的要领及机能比较》

究竟哪一种要领更高效?这跟各浏览器的引擎有关,依据JavaScript 如何高效拼接字符串?这篇文章,自身做了个简朴归结。(一家之言,没做深切考证)

  1. 在旧浏览器(ie7-)下用 join 会更高效。

  2. 在当代浏览器,只管用"+",更高效。

  3. 固然,在少数当代浏览器里 “+” 不一定会比 join 快(如,safari 5.0.5,opera 11.10)

  4. 自身是字符串数组的,直接 join 会更好。

  5. "+"concat之间,固然是优选运用"+",轻易又直观又高效。

    原文作者:Tammy
    原文地址: https://segmentfault.com/a/1190000007481700
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞