JavaScript性能陷阱
13.使用变量缓存值
在做重复工作的地方使用局部变量缓存值。
下面的一组例子表明了存储值到局部变量的广泛意义。
例子1.计算执行前在循环体内使用变量存储数学函数
错误的方法:
1 2 3 4 | var d=35; for (var i=0; i<1000; i++) { y += Math.sin(d)*10; } |
更好的处理:
1 2 3 4 5 | var d = 55; var math_sind = Math.sin(d)*10; for (var i=0; i<1000; i++) { y += math_sind; } |
例子2.保存数组的长度在循环中使用
糟糕的处理:
1 2 3 | for (var i = 0; i < arr.length; i++) { // do something } |
数组的长度每次都会被重复计算
更好的改进:
1 2 3 | for (var i = 0, len = arr.length; i < len; i++) { // do something } |
更好的方法是保存数组的长度
总的来说,如果已经做了一次,我们就不需要重复的做不必要的工作。例如,作用域或者函数中多次使用到计算的一个表达式的值,保存到变量可以使它多次 被使用,否则我们会过头的声明一个变量并赋值然后只适用一次。所以请记住这些。


欢迎留言