我主要认为我声明的变量越少越好。因此,当我浏览Julien Lecomte 演讲的演示文稿时,发现他声明了局部变量以减少查找开销。
var arr = ...;
var globalVar = 0;
(function () {
var i;
for (i = 0; i < arr.length; i++) {
localVar++;
}
})();
/* vs */
var arr = ...;
var globalVar = 0;
(function () {
var i, l , localVar;
l = arr.length;
localVar = globalVar;
for (i = 0; i < l; i++) {
localVar++;
}
globalVar = localVar;
})();
/* (faster on all A-grade browsers) */
编辑:在设计基于 JavaScript 的 webapp/-site 以在所有现代桌面和移动浏览器上运行时 - 是否存在由于查找成本而我应该始终更喜欢在本地范围内缓存变量查找的情况?(例如,当访问不止一次的对象分配给myArray[100][20][40][90]
或更改对象的多个属性时,该对象在当前范围内放置了许多级别,循环数以千计?)
或者查找时间是如此无关紧要,以至于我最好通过省略本地缓存变量来节省字符空间和内存?