Javascript介绍
本篇内容主要摘自Douglas Crockford所著的《JavaScript语言精
粹》。建议所有Javascript的使用者都学习下这本书,即使很多人认
为本书有不合理甚至是错误的地方,也有很多人说这是老道在和同道们讨论他自己的想法,但我个人认为无论如何都不能否定这本书的价值。
Javascript是一门重要的语言,因为它是Web浏览器的语言。
Javascript与浏览器的结合使它成为世界上最流行的编程语言之一。
同时,它也是世界上最被轻视的编程语言之一。浏览器的API和文档对
象模型相当糟糕,连累JavaScript受到不公平的职责。在任何语言中
处理DOM都是一件痛苦的事情,它的规范制定得很拙劣并且实现互不一
致。
Javascript是最被轻视的语言,因为它并不是所谓的主流语言。如果
你擅长某些主流语言,但却在一个只支持Javascript的环境中变成,
那么被迫使用JavaScript的确是相当令人厌烦的。在这种情形下 ,大
多数人觉得没必要先去学好Javascript,但结果他们会惊讶地发现,
JavaScrpt跟他们宁愿使用的主流语言有很大不同,而且这些不同至为关键。
分析JavaScript
JavaScript建立在一些非常优秀的想法和少数非常糟糕的想法之上。
JavaScript是第一个成为主流的Lambda语言。实际上,相对于Java
而言,JavaScript与Lisp和Scheme有更多的共同点。它是披着C外衣
的Lisp。这使得JavaScript成为一个非常强大的语言。
JavaScript有非常强大的对象字面量表示法。通过列出对象的组成部
分,它们就能单地被创建出来。这种表示法也是JSON的灵感来源。
JavaScript在关键思想的选择上饱受非议。虽然在大多数情况下,这
些选择是合适的。但是有一个选择相当糟糕:JavaScript依赖于全局
变量来进行连接。所有编译单元的所有顶级变量被撮合到一个被称为全
局对象的公共命名空间中。这是一件糟糕的事情,因为全局变量是魔
鬼,但它们在JavaScript中却是基础。幸好,我们接下来会看到,
JavaScript也给我们提供了缓解这个问题的处理方法。