还是列举吧,看起来泾渭分明~
作用域链:
- 函数执行时,js引擎会创建一个活动对象,它会出现在执行上下文作用域的顶端,紧接其后的是函数scope属性中的对象(活动对象包括this,arguments和形参)。所以应该使用局部变量以提高速度。
- with和try-catch中的catch语句会在作用域链的顶部临时增加一个对象,导致局部变量变成了第二个对象,减慢了标识符的存取,所以应避免使用(增长了作用域链)
流控制:
- switch-case语句中的条件应按频率降序排列
- 优化if语句判断条件,条件数量众多且未出现频率特别高的条件时可使用二分法
- 当条件对应的结果是单一值而非一系列操作时,可以用数组查询代替switch,eg:
var results = [res0, res1. res2. ……];return results[value]
快速循环:
- 将循环变量递减到0(通过与0比较来提高速度)
- 避免for-in循环(但在处理如JSON对象这样的未知属性集时,仍必须使用for-in)
- 展开小循环
- 考虑每次循环完成标准循环的1-8次(8为最佳实践)
- -
又熄灯了,一天就这样过去。睡觉之前再记录一个强大的window.performance对象用于性能分析吧,这个对象功能很强大,比如像使用
performance.time.domComplete - performance.time.navigationStart
计算dom加载时间……晚安