数据访问,性能注意点---高性能javascript
在理解作用域链的基础上,注意下面这些点:
1、函数中读写局部变量总是最快的,而读写全局变量通常是最慢的,请记住,全局变量总是存在与运行期上下文作用域链的最末端。
经验法则:如果某个跨作用域的值在函数中被引用一次以上,那么就把它存到局部变量里。
2、动态作用域,只存在于代码执行过程中,因此无法通过静态分析检测出来,会产生静态作用域的几个关键字:with、try catch、eval,只用确实必要时才推荐使用动态作用域。
try catch一般是在catch代码块内部,函数所有局部变量将会放在第二个作用域链对象中。
经验法则:可以通过精简的代码来最小化catch子句对性能的影响。一个很好的模式是将错误委托给一个函数来处理。
3、闭包:如果要经常访问大量跨作用域的标识符,每次访问到会导致性能损失。
经验法则:将常用的夸作用域变量存储在局部变量中,然后直接访问局部变量。
在实际写代码的时候要注意这些小细节,提高代码性能。