字符串连接优化
拼接字符串是JS中常用的操作,下面对IE及其他浏览器做一定测试,找出最快的拼接方式
例1:
var str += 'a' + 'b';
1. 创建一个临时字符串
2. 连接后的字符串'ab'被赋值给临时字符串
3. 临时字符串与str当前值连接
4. 结果赋值给str
例2:
var str += 'a';
var str += 'b';
1. 字符‘a'与str当前值连接
2. 结果赋值给str
可以看出比例1省了第一,二步,也增加了给str增加字符数的步骤,我个人认为只是省略了创建临时字符串
例3:
var str = str + 'a' + 'b';
1. 逐步把'a','b'的值添加到str后面
2. 最后把结果赋值给str
以上3个例子是在非IE和IE8+环境下,在IE7及以下IE版本,该效果并没有得到优化,反而变的更慢,下面看例子
var d1 = new Date.getTime(),
str = 'abcdefabcdefabcdefabcdef',
newStr = '',
appends = 5000;
while(appends--){
newStr += str;
}
var d2 = new Date.getTime();
alert(d2 - d1);
在>=IE7浏览器中运行时间为200ms+,明显显示出速度非常慢。
明天写一下 IE7的优化方法。。。
浙公网安备 33010602011771号