最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

探讨js字符串数组拼接的性能问题_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:27:51
文档

探讨js字符串数组拼接的性能问题_javascript技巧

探讨js字符串数组拼接的性能问题_javascript技巧:我们知道,在js中,字符串连接是性能最低的操作之一。 例如: 代码如下: var text=Hello; text+= World!; 早期浏览器没有对这种运算进行优化。 由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果。频繁地在后台创建和销毁字符串导制性
推荐度:
导读探讨js字符串数组拼接的性能问题_javascript技巧:我们知道,在js中,字符串连接是性能最低的操作之一。 例如: 代码如下: var text=Hello; text+= World!; 早期浏览器没有对这种运算进行优化。 由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果。频繁地在后台创建和销毁字符串导制性


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

代码如下:
var text="Hello";
text+=" World!";

早期浏览器没有对这种运算进行优化。
由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果。频繁地在后台创建和销毁字符串导制性能异常低下。

因此,可以利用数组对象进行优化。
例如:

在早期的浏览器中,没有创建和销毁中间字符串,在大量字符串连接情况下,这技术已被证明远快于使用加法方式。

如今浏览器对字符串的优化已经改变了字符串相连的局面。Safari、Opera、Chrome、Firefox和IE8都在使用加法运算符上表现出了更好的性能。但是,IE8之前的版本没有优化,因此数组方法依然有效。这并不意味着字符串相连时我们要进行浏览器检测。在决定如何连接时要考虑的是字符串的大小和数量。

当字符串相对较小(小于20字符)且连接数量也较小时(小于1000个),所有的浏览器使用加法运算符都能在不到1毫秒内轻松完成连接。增加字符串数量或大小时,IE7中性能会明显下降。字符串大小增加时,Firefox中加法运算符和数组成技巧性能差异会变小。字符串数量增加时,Safari中加法运算符和数组成技巧性能差异会变小。改变字符串数量或大小时,Chrome和Opera中加法运算符一直保持领先优势。

所以,由于在各浏览器下性能不一致,选用技术取决于实际情况和面对的浏览器。

大多数情况下,加法运算符是首选;如果用户主要使用IE6或7,并且字符串大小较大或数量较多时,那么数组技术就很值得。

一般情况下,如果是语义性的字符串,不应该使用Array,比如:
'Hello, my name is ' + name;

如果字符串是"相似情况的重复"的话,建议使用Array,比如:

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

文档

探讨js字符串数组拼接的性能问题_javascript技巧

探讨js字符串数组拼接的性能问题_javascript技巧:我们知道,在js中,字符串连接是性能最低的操作之一。 例如: 代码如下: var text=Hello; text+= World!; 早期浏览器没有对这种运算进行优化。 由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果。频繁地在后台创建和销毁字符串导制性
推荐度:
标签: js 拼接 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top