高性能JavaScript(2)之数据存取
在JavaScript中,数据存储的位置会对代码整体性能产生重大的影响。数据存储共有四种方式:
1 字面量
字面量只代表自身,不存储在特定的位置。JavaScript中的字面量有:字符串,数字,布尔值,对象,数组,函数,正则表达式,一级特殊的null和undefined
2 本地变量
开发人员使用的关键字var定义的数据存储单元
3数组元素
存储在JavaScript数组对象内部,以数字作为索引
4对象成员
存储在JavaScript对象内部,以字符串作为索引
它们有着各自的性能特点
一:方位字面量和局部变量的速度最快,相反,访问数组元素和对象成员相对较慢
二:由于局部变量存在于作用域链的起始位置,因此访问局部变量比访问夸作用域变量更快。变量在作用域链中的位置越深,访问所需时间就越长。由于全局变量总处在作用域链 的最末端,因此访问速度也是最慢的
三:避免使用with语句,因为它会改变执行环境作用域链,同样,try-catch语句中的catch子句也有同样的影响。因此也要小心点使用。
四:嵌套的对象成员会明显影响性能,尽量少用。
五:属性和方法在原型链中位置越深,访问它的速度也就越慢
六:通常来说你可以把常用的对象成员,数组元素,跨域变量保存在局部变量中来改善JavaScript性能,因为局部变量访问速度更快。
通过以上策略,你可以显著提升那些需要使用大量JavaScript的Web应用的实际性能。