首页 > 试题广场 >

在大数据量场景下,以下哪种js中字符串连接方式较为高效( &

[单选题]
在大数据量场景下,以下哪种js中字符串连接方式较为高效(     )
  • a+=b
  • a = a+b
  • Array.join()
  • Array.push()
+的处理机制是:新建一个临时字符串,将新字符串赋值为a+b,然后返回这个临新字符串并同时销毁原始字符串,所以字符串连接效率较低。所以用Array.join()不会新建临时字符串效率更高。
(当然以上效率问题仅存在于低版本浏览器ie7-及以下,现在的新浏览器基本上都解决了这个问题,效率差不多)
所以在面试时遇到这种题时告诉面试官分两种情况:
旧浏览器(ie7-)下用join()会高效,而新版本浏览器下除了做变量缓存外不需要做别的优化。这样可以侧面表达对刘拉你兼容有所了解。

---哈哈哈查到的
发表于 2019-09-20 09:17:53 回复(2)
[摘自网络]
  1. 在旧浏览器(ie7-)下用 join 会更高效。

  2. 在现代浏览器,尽量用"+",更高效。

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

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

  5. 在"+"与concat之间,当然是优选使用"+",方便又直观又高效。


发表于 2020-02-28 21:06:22 回复(1)
好多题的答案都让我很费解  
发表于 2019-12-28 10:35:26 回复(0)
Array.join 是undefined啊;Array.prototype上面才有join吧 你这个题写的就有问题
发表于 2019-12-04 18:02:35 回复(9)
字符串的拼接可以有两种方法:
第一种:res += str;
第二种:把每个字符串 push 进数组,再把数组拼接成字符串 join。
第二种比第一种高效。
发表于 2019-10-13 10:01:53 回复(0)
<p>用友的题我好像就没做对过...</p>
发表于 2020-05-21 17:46:18 回复(0)
为什么更高效啊
发表于 2019-09-19 21:08:56 回复(0)
ray.join()不会新建临时字符串效率更高。
发表于 2020-02-22 20:02:49 回复(0)
数组的方法老是背错,烦死了
发表于 2022-03-29 00:07:15 回复(1)
题目是没有问题的经过测试
        <script>
            var fruits = ["Banana", "Orange", "Apple", "Mango"];
            var energy = fruits.join();
            console.log(energy);
        </script>
说有问题的也许是自己写的代码有问题
发表于 2020-07-28 11:18:07 回复(1)
捏妈,之前看的一本21年的《web前端性能优化》就写着 Array.join 和 String.concat 性能不如原生拼接方式,而 a += b 与 a = a + b 对比是后者更高效,因为前者需要生成一个临时变量来存放 b,而后者不需要,且执行速度后者比前者能快 20%,ie7这种老东西为什么还要拿出来讲
发表于 2023-02-19 09:49:29 回复(0)
多选题就一个答案😂
发表于 2022-02-23 06:04:41 回复(0)
我不理解

发表于 2022-02-21 16:29:37 回复(0)
出题的人是脑子抽了?都遇到好多这种标个“多选题”,答案又全是单选的。
发表于 2021-12-04 09:34:18 回复(0)
不是牛客的题是不是有问题,做的时候和我说是不定项选择,做完和我说是单项选择
发表于 2021-11-20 17:47:58 回复(1)
不定选整个单选有意思吗
发表于 2021-09-19 20:01:08 回复(1)
旧浏览器(ie7-)下用join()会高效,而新版本浏览器下除了做变量缓存外不需要做别的优化
发表于 2021-05-31 09:07:55 回复(0)
问题阐述不清晰,明明是针对字符串的,来的却是Array的方法,类型都不同
发表于 2021-04-07 08:50:59 回复(0)
<p>这是哟个P标签,我是用来测试的<p/>

发表于 2021-01-04 16:35:43 回复(0)
a += b; 会临时新建一个字符串存取处理的值,然后再进行下次执行。
发表于 2020-12-10 11:40:45 回复(0)