`
sl166543210
  • 浏览: 2514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

编写高效的Javascript ------ Nicholas C. Zakas

阅读更多
Nicholas C. Zakas 在《编写高效的Javascript》一文里总结如下:

管理作用域非常重要,因为存取非局部变量要比局部变量耗时更多。尽量避免使用增长作用域链的结构,比如使用with语句和try-catch从句。如果非局部变量的使用超过一次,那么为了降低性能损耗,就应该将它存储到一个局部变量中。

存储和读取数据的方式对脚本性能影响极大。字面量和局部变量总是最快的;存取数组元素和对象属性会引起性能损耗。如果数组元素或者对象属性的使用超过一次,那么,为了提高存取速度,就应该将它存储到一个局部变量中。

流控制也是影响脚本执行速度的一个重要因素。条件判断有三种方式:if语句、switch语句和数组查找。if语句适用于少量离散值或者一段区间值的判断;switch语句最好用于对3~10个离散值的判断;数组查找在处理大量离散值时效率最高。

在Javascript中,循环经常会成为性能瓶颈。为了使循环效率更高效,可以采用倒序的方式来处理元素,也就是在控制条件中,将迭代变量和0做比较。相比非0值,这种方式要快得多,从而显著提升数组的处理速度。如果必须要进行大量的迭代,还可以考虑使用Duff策略来提高执行速度。

谨慎使用HTMLCollection对象。每次存取这类对象的属性,都会重新查询DOM中匹配的节点。为了避免这种高昂的开销,只有在必要时才存取HTMLCollection对象,并将经常存取的值(例如length属性)存储在局部变量中。

常见的字符串操作可能带来意料之外的性能问题。Internet Explorer处理字符串连接的速度比其他浏览器要慢得多,但这没什么大不了,除非你执行1000次以上的字符串连接。你可以对Internet Explorer处理字符串连接的方式进行优化:先将所有要连接的字符串存储到数组中,然后调用join()方法合并他们。去除字符串两端的空白也可能很耗时,这取决于字符串的大小。如果脚本中经常需要去除字符串两端的空白,那请确保使用最优算法。

浏览器会限制Javascript可以运行的最长时间,有些会以执行语句的数量作为判断条件,有些则会控制Javascript引擎执行的总时间。你可以使用定时器将任务拆分执行,从而绕开这些限制,避免浏览器弹出中止脚本运行的警告。
分享到:
评论

相关推荐

    [高性能JavaScript编程].(High.Performance.JavaScript).Nicholas.C.Zakas.文字版

    《高性能JavaScript编程》是一本由Nicholas C. Zakas撰写的书籍,旨在教授开发者如何编写高性能的JavaScript代码。Nicholas C. Zakas曾是Yahoo!公司的高级前端工程师,他在书中分享了大量实战经验与技巧,帮助读者...

    [高性能JavaScript编程].(High.Performance.JavaScript).Nicholas.C.Zakas.中英对照版.pdf

    《高性能JavaScript编程》是由Nicholas C. Zakas所著的一本深入探讨JavaScript性能优化的书籍。这本书以中英对照的形式,为读者提供了丰富的JavaScript性能优化技巧和实践方法,旨在帮助开发者构建更快、更稳定的...

    Nicholas C. Zakas如何面试前端工程师

    Zakas如何面试前端工程师”暗示了我们即将探讨的是关于前端开发者面试的策略和技巧,特别是从知名前端专家Nicholas C. Zakas的角度。 Nicholas Zakas是前端开发领域的权威,他曾经是Yahoo!前端性能团队的负责人,...

    Nicholas_C_Zakas-The_Principles_of_JavaScript-EN.pdf

    《JavaScript面向对象的原则》是Nicholas C. Zakas所著,旨在深入探讨JavaScript这门语言面向对象的特性。JavaScript虽然与C++或Java这类传统的面向对象语言存在不同,例如它没有类的概念,而且编写代码时也不需要...

    (彩色高清)[高性能JavaScript编程].(High.Performance.JavaScript).Nicholas.C.Zakas.中英对照版.pdf

    - **异步编程**:介绍如何使用异步编程模式来编写高效的应用程序,如回调函数、Promises、async/await等。 **细节探讨:** - **循环优化**:通过减少循环内的工作量、避免不必要的循环等方式来提高算法效率。 - **...

    编写可维护的JavaScript.((美)Nicholas C. Zakas).[PDF.pd

    读者应当理解这些原则和最佳实践,并在编写JavaScript代码时予以应用,以提高代码的可维护性。由于正文中未提供具体的内容摘录,无法提供更深入的分析和讨论,但上述知识点应该为读者提供了一个关于如何编写可维护...

    Maintainable JavaScript by Nicholas C. Zakas 2012

    本书《Maintainable JavaScript》由Nicholas C. Zakas撰写,首次出版于2012年。作者凭借其深厚的前端开发经验,探讨了如何编写可维护的JavaScript代码。本书不仅仅是关于编写代码,更多的是教会开发者如何保持代码的...

    高性能Javascript编程--英文版

    Zakas和其他五位JavaScript专家介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。你还会了解到构建和部署文件到生产环境的最佳实践,以及有助于定位线上问题的工具。 作者  Nicholas C...

    编写可维护的JavaScript.pdf

    ### 编写可维护的JavaScript #### 书籍信息概览 - **书名**:《Maintainable JavaScript》 - **作者**:Nicholas C. Zakas - **出版年份**:2012年 - **出版社**:O'Reilly Media, Inc. - **ISBN**:978-1-449-...

    编写可维护的JavaScript

     《编写可维护的JavaScript》作者Nicholas C. Zakas是顶级的Web技术专家,也是《JavaScript高级程序设计》一书的作者。他曾是Yahoo!的首席前端开发工程师,在完成了从一名“独行侠”到“团队精英”的蜕变后,他站...

    Maintainable+JavaScript(编写可维护的JavaScript).pdf

    《编写可维护的JavaScript》由Nicholas C. Zakas撰写,是IT领域内关于JavaScript编程实践的一本权威著作。本书重点在于教导开发者如何编写出既高效又易于维护的JavaScript代码,这对于任何从事前端开发或是全栈开发...

    编写可维护的JavaScript中文完整版+英文版

    《编写可维护的JavaScript》作者Nicholas C. Zakas是顶级的Web技术专家,也是《JavaScript高级程序设计》一书的作者。他曾是Yahoo!的首席前端开发工程师,在完成了从一名“独行侠”到“团队精英”的蜕变后,他站在...

    High.Performance.JavaScript

    《高性能JavaScript》是由Nicholas C. Zakas撰写的一本经典著作,主要针对JavaScript开发者,旨在提升JavaScript代码的执行效率和优化技巧。这本书深入探讨了如何编写高效、可维护的JavaScript代码,涵盖了从基本的...

    高性能JavaScript

    Zakas和其他五位JavaScript专家介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。你还会了解到构建和部署文件到生产环境的最佳实践,以及有助于定位线上问题的工具。

    [Wrox]Professiona JavaScript for Web Developers.pdf

    - **作者**:Nicholas C. Zakas - **出版年份**:2005年 - **出版社**:Wiley Publishing Inc. - **版权所有**:本书的所有权归属于Wiley Publishing Inc.,并受美国1976年版权法保护。未经许可,不得以任何形式或...

Global site tag (gtag.js) - Google Analytics