读书笔记
1.当执行javascript代码时,javascript引擎会创建一个执行上下文。执行上下文设定了代码执行时所处的环境。javascript引擎会在页面加载后创建一个全局执行上下文,然后每执行一个函数都会创建一个对应的执行上下文,最终建立一个执行上下文的堆栈,当前起作用的执行上下文在堆栈的最顶部。
2.使用局部变量:这样使得在使用变量的适合能够再堆栈的顶部找到变量,而不需要增加在作用域链中查找的时间。
3.使用with会加深作用域链,建议不使用。
4.try-catch也会加深作用域链,因为在catch块中会在作用域的顶部加了一个异常的对象,但是是在发生错误的时候才执行,所以它比with语句的影响要小。
5.数据在脚本中存储的位置直接影响脚本执行的总耗时,脚本中有四种地方可以存取数据
a.字面量值
b.变量
c.数组元素
d.对象属性
6.控制流,流控制是提升javascript性能最重要的一环,用switch语句简化了多重条件判断的结构,并且提升性能,避免使用for-in循环,它用来遍历javascript对象的可枚举属性。
7.字符串优化:字符串的连接应该避免使用加法运算符(+)来完成,然后我们使用javascript的Array对象有一个join方法,用来连接数组中的所有元素并且在元素之间插入指定的字符串。开发者把字符串添加到数组中然后通过join方法来连接字符串,这样就避免了使用加法运算符。
8.避免运行时间过长的脚本
a.过多的DOM操作。
b.过多的循环。
c.过多的递归。
9.使用定时器挂起,使用setTimeout函数传递需要执行的函数及延迟执行该函数的时间,延迟执行脚本的时间。
1.管理作用域非常重要,因为存取非局部变量比局部变量耗时更多。
2.存储和读取数据的方式对脚本性能影响极大。
3.控制流也是影响脚本执行速度的一个重要因素。
4.在javascript中循环经常会成为性能瓶颈。
5.谨慎使用HTMLCollection对象。
6.常见的字符串操作可能会带来意料之外的性能问题。
7.浏览器会限制Javascript可以运行的最长时间,有些会执行语句的数量作为判断条件,有些则会控制javascript引擎执行的总时间。
网友评论