编写高效的javascript

读书笔记

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引擎执行的总时间。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容