数据存取性能而言:
字面量>本地变量>数组元素>对象成员
一、标识符解析的性能
标识符解析是有代价的,一个标识符的位置越深,它的读写速度也就越慢。
局部变量的读写速度是最快的,全局变量在作用域链的最末端,所以尽可能使用局部变量。
如果某个跨作用域的值在函数中被引用一次以上,那么久把它存储到局部变量里。
二、改变作用域链
作用域链运行后一般不会改变的,With和 Try-Catch可以在执行时临时改变作用域链,功能模块执行完后,作用域链恢复。
改变作用域链后,访问改变后的对象更快了,但是访问函数内的局部变量变慢了,一般不建议使用。
function initUI(){ var num1 = 0; with(docuent){ var bd = body, links = getElementsByTagName("a"); var num2 = num1; bd.className = "active"; } }
三、动态作用域
四、闭包、作用域和内存
时间: 2024-10-17 00:35:50