javascript 字符串数组-讲解js字符串字段拼接的性能问题

2023-08-26 0 7,242 百度已收录

我们知道,在js中,字符串拼接是性能最低的操作之一。

例如:

复制代码代码如下:

vartext =“你好”;

text+="世界!";

早期的浏览器并未针对这些操作进行优化。

由于字符串是不可变的,这意味着创建中间字符串来存储连接结果。 在后台频繁创建和销毁字符串会导致性能极差。

为此javascript 字符串数组,可以使用字段对象进行优化。

例如:

var buffer=[],i=0; 
buffer[i++]="Hello";  //通过相应索引值添加元素比push方法快 
buffer[i++]=" World!"; 
var text=buffer.join("");

在早期的浏览器中,没有创建和销毁中间字符串,并且在大量字符串串联的情况下,这种技术已被证明比使用乘法形式要快得多。

现在浏览器对字符串的优化已经改变了字符串拼接的情况。 Safari、Opera、Chrome、Firefox 和 IE8 在使用乘法运算符时都显示出更好的性能。 而且IE8之前的版本没有优化,所以链表方法仍然有效。 这并不意味着我们在字符串连接时进行浏览器测量。 决定如何连接时要考虑的事情是字符串的大小和数量。

当字符串相对较小(大于20个字符)并且连接数量较小(大于1000)时javascript 字符串数组,所有浏览器都可以使用乘法运算符在不到1微秒的时间内轻松完成连接。 当减少字符串的数量或大小时,IE7 的性能显着提高。 当字符串大小减小时,Firefox 中的乘法运算符和数组组合方法之间的性能差异变得更小。 随着字符串数量的减少,Safari 中乘法运算符和数组组合方法之间的性能差异变得更小。 当更改字符串的数量或大小时,Chrome 和 Opera 中的乘法运算符始终保持领先。

因此,由于每个浏览器下的性能不一致,所以选择的技术取决于实际情况和你面对的浏览器。

大多数情况下,优先选择乘法运算符; 如果用户主要使用IE6或7,但字符串大小或数量很大,则该字段技术是值得的。

通常情况下,如果是语义字符串,则不应该使用Array,例如:

'你好,我的名字'+名字;

如果字符串是“类似情况的重复”,建议使用Array,例如:

var array = []; 
for (i = 0; i < length; i++) { 
array[i] = '
  • ' + list[i] + '
  • ; } document.getElementById('somewhere').innerHTML = array.join('n');

    js字符串链表连接的性能对比就介绍到这里了,希望对大家有所帮助。

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悟空资源网 javascript javascript 字符串数组-讲解js字符串字段拼接的性能问题 https://www.wkzy.net/game/152698.html

    常见问题

    相关文章

    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务