读书频道 > web开发 > Javascript > Effective JavaScript:编写高质量JavaScript代码的68个有效方法
前言
2013-12-07 13:30:04     我来说两句 
收藏    我要投稿   
本书共分为7章,分别涵盖JavaScript的不同主题。第1章主要讲述最基本的主题,如版本、类型转换要点、运算符注意事项和分号局限等。第2章主要讲解变量作用域,介绍此方面的一些基本概念,以及一些最佳实践经验。第  立即去当当网订购

学习一门编程语言,需要熟悉它的语法、形式和结构,这样我们才能编写合法的、符合语义的、具有意义和行为正确的程序。但除此之外,掌握一门语言需要理解其语用,即使用语言特性构建高效程序的方法。后一种范畴是特别微妙的,尤其是对JavaScript这样一种灵活而富有表现力的编程语言来说。

这是一本关于JavaScript语用学的书。这不是一本入门书籍,我假设你在一定程度上熟悉了JavaScript和通常的编程。很多优秀的JavaScript入门书籍可供参考,例如,Douglas Crockford的《JavaScript: The Good Parts》和Marijn Haverbeke的《Eloquent JavaScript》。本书的目的是帮助你加深理解如何有效地使用JavaScript构建更可预测、可靠和可维护的JavaScript应用程序和库。

JavaScript与ECMAScript

在深入本书之前澄清一些术语是有必要的。这是一本关于举世皆知的JavaScript编程语言的书籍。然而,官方标准定义的规范的描述是一门称该语言为ECMAScript。历史很令人费解,但这可以归结为版权问题:出于法律原因,Ecma国际标准化组织不能使用“JavaScript”作为其标准名称。(更糟的是,标准化组织将其原来的名称ECMA(欧洲计算机制造商协会的英文首字缩写)改为不是全大写的Ecma国际标准化组织。彼时,ECMAScript这个名字大约也是早已注定。)

正式来说,当人们提到ECMAScript时,通常是指由Ecma国际标准化组织制定的“理想”语言。与此同时,JavaScript这个名字意味着来自语言本身的所有事物,例如某个供应商特定的JavaScript引擎。通常情况下,人们经常交替使用这两个术语。为了保持清晰度和一致性,在本书中,我将只使用ECMAScript来谈论官方标准,其他情况,我会使用JavaScript指代语言。我还会使用常见的缩写ES5来指代第5版的ECMAScript标准。

关于Web

避开Web来谈JavaScript是很难的。到目前为止,JavaScript是唯一为用于客户端应用程序脚本的所有主流浏览器提供内置支持的编程语言。此外,近年来,随着Node.js平台的问世,JavaScript已经成为一个实现服务器端应用程序的流行编程语言。

不过,本书是关于JavaScript而非Web的编程。有时,谈论一些Web相关的例子和应用程序的概念是帮助读者理解。但是,这本书的重点是JavaScript语言的语法、语义和语用,而不是Web平台的API和技术。

关于并发

JavaScript一个新奇的方面是在并发环境中其行为是完全不明朗的。ECMAScript标准(包括第5版)关于JavaScript程序在交互式或并发环境中的行为只字未提。第7章涉及并发,因此,我只是从技术角度介绍一些非官方的JavaScript特性。但实际上,所有主流的JavaScript引擎都有一个共同的并发模型。尽管在标准中未提及并发,但是致力于并发和交互式的程序是JavaScript编程的一个核心概念。事实上,未来版本的ECMAScript标准可能会正式地标准化这些JavaScript并发模型的共享方面。

致谢

这本书在很大程度上要归功于JavaScript的发明者——Brendan Eich。我深深感谢Brendan邀请我参与JavaScript标准化工作,以及他对我在Mozilla的职业生涯中给予的指导和支持。

本书中的大部分材料是受优秀的博客文章和在线论文的启发。我从Ben“cowboy”Alman、Erik Arvidsson、Mathias Bynens、Tim“creationix”Caswell、Michaeljohn“inimino”Clement、Angus Croll、Andrew Dupont、Ariya Hidayat、Steven Levithan、Pan Thomakos、Jeff Walden,以及Juriy“kangax”Zaytsev的博客中学到很多东西。当然,本书的最终资源来自ECMAScript规范。ECMAScript规范自第5版以来由Allen Wirfs-Brock不知疲倦地编辑和更新。Mozilla开发者网络仍然是JavaScript API和特性最令人印象深刻的、高品质在线资源之一。

在策划和写作这本书的过程中,我有许多顾问。在我开始写作之前,John Resig就以作者的角度给了我很多有用的建议。Blake Kaplan和Patrick Walton帮我在早期阶段整理我的想法和规划出这本书的组织结构。在写作的过程中,我从Brian Anderson、Norbert Lindenberg、Sam Tobin-Hochstadt、Rick Waldron和Patrick Walton那里得到了很好的建议。

很高兴能够和Pearson的工作人员共事。Olivia Basegio、Audrey Doyle、Trina MacDonald、Scott Meyers和Chris Zahn一直关注我提出的问题,对我的拖延报以耐心,并通融我的请求。我无法想象还能有一个更愉快的写作经历。我对能为Effective系列写一本书感到非常荣幸。因为很久以前我就是《Effective C++》的粉丝,我曾经怀疑我是否有亲自书写一本Effective系列书籍的荣幸。

我也简直不敢相信自己有这样的好运气,能够找到梦之队一样的技术编辑。我很荣幸Erik Arvidsson、Rebecca Murphey、Rick Waldron和Richard Worth同意编辑这本书,他们为我提供了许多宝贵的批评和建议。他们多次纠正了书中一些真正令人尴尬的错误。

写一本书比我预想的要难得多。如果不是朋友和同事的支持,我可能已经失去了勇气。在我怀疑自己的时候,Andy Denmark、Rick Waldron和Travis Winfrey总是给予我鼓励。

我绝大部分时候是在旧金山柏丽附近的神话般的Java Beach咖啡厅里写作这本书的。那里的工作人员都知道我的名字,并且我还没点餐之前,他们就知道我想要点什么。我很感谢他们提供了一个舒适的工作场所,并给我提供食物和咖啡。

我的毛茸茸的猫科小友Schmoopy为本书做出了它的最大贡献。至少,它不停地跳上我的膝盖,坐在屏幕前(有可能是笔记本电脑比较温暖)。Schmoopy自2006年以来一直是我的忠实伙伴,我不能想象我的生活能离得开这个小毛球。

我的整个家庭对这个项目从开始到结束一直都很支持和激动。遗憾的是,我无法在我的爷爷和奶奶(Frank和Miriam Slamar)去世之前和他们分享这本书的成品。但他们会为我感到激动和自豪,而且本书中有一小段我儿时与爷爷Frank编写BASIC程序的经历。

最后,我要感谢我一生的挚爱Lisa Silveria,我对她的付出无以为报。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:
下一篇:目录
相关文章
图文推荐
3.12 本章小结
3.10 添加新函数
3.9 递归
3.8 闭包
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站