前端性能优化之数据存取(二)

标识符解析过程:标识符解析过程已决定从哪里获取数据或存储数据。

该过程搜索执行环境的作用域链,查找同名的标识符,搜索过程从作用域的头部开始,也就是当前运行函数的活动对象。如果找到就会使用这个标识符对应的变量,如果没有找到则继续搜索下一个对象,搜索过程会持续进行,直到找到标识符,如没有搜索到匹配的对象,那么标识符就没有定义,在函数执行过程都会经历这样的过程。

一个标识符所在位置越深,它的读写速度就会越慢,因此读写局部变量总是最快的,而读写全局变量通常是最慢的。

With语句和try-catchcatch子句都会改变作用域链

With语句执行时,执行环境的作用域链会被临时改变,一个新的变量对象被创建,它包含了参数指定的对象所有的属性。这个属性被推入作用域的首位,函数的所有的局部变量现在处于第二个作用域链对象中,这样访问代价更大。

try子句中发生错误,执行过程会自动跳到catch中,把错误对象推入一个新的变量对象并置于作用域的首位。执行完毕后,作用域就会返回原来的状态。

1、尽量少用前套对象

2、把常用的对象成员、数组元素、跨域变量保存在局部变量中,

3、避免使用with语句,小心使用try-catch语句

原文地址:https://www.cnblogs.com/CloverH/p/5244771.html