天天看点

《JavaScript面向对象编程指南(第2版)》——第1章 面向对象的JavaScript 1.1 回顾历史

本节书摘来自异步社区《javascript面向对象编程指南(第2版)》一书中的第1章,第1.1节,作者:【加拿大】stoyan stefanov著,更多章节内容可以访问云栖社区“异步社区”公众号查看

自web诞生以来,人们对于动态与响应式页面的需求便与日俱增。虽然静态的html文本页面在可读性方面或许会更好一些,特别是在有了css的辅助之后,页面排版显得更加美观了,但从另一方面来说,如果我们能让人们像在桌面上那样使用浏览器中的应用程序,事情或许会变得更有趣一些。如今,我们已能在浏览器中直接使用电子邮件、日历、电子银行、购物、绘画、游戏及文本编辑。这都要感谢一种web编程语言—javascript,是它让这些web应用成为了可能。然而,javascript最初也只不过是我们偶尔嵌入在html中的一小行代码,但如今它已经日趋成熟,并且被广泛使用。开发者们利用该编程语言的面向对象特性,实现了代码重用,并构建起了可伸缩的代码架构。

如果我们回顾一下web开发领域这些年来的流行词汇—dhtml、ajax、web 2.0、html5,就会发现这些词背后的内涵始终没有变,依然是:html、css、javascript。其中html服务于内容,css服务于表现,而javascript则服务于行为。换句话说,javascript是让一切东西协同运作的粘合剂,有了它,我们才能在构建出丰富多彩的web应用程序。

但事情远不止如此,javascript的应用领域并不仅仅局限于web平台。

在javascript程序所能运行的多种宿主环境中,web浏览器无疑是用得最普遍的那一种,但javascript也可以运行于其他环境。javascript可以应用于各式各样的小工具、应用扩展、以及其他软件,本书在后续章节中会一一提及。总而言之,将时间投资于学习javascript是一个明智的选择,因为一旦您掌握了javascript,就可以编写出各种适用于多种平台的不同应用,包括手机应用和服务器端程序。毕竟,如今我们要说javascript无所不在,那确实是一点都不夸张。

本书将从零开始,我们不会对读者的编程背景做任何假设,只需要您了解一点html常识即可。而且除了有一个章节用于探讨web浏览器环境以外,本书其他部分都在纯粹地关注javascript语言本身。因此,您可以将在本书中学到的知识应用于所有的javascript环境。

下面,我们将从以下两点开始:

对javascript背后故事的简单介绍;

面向对象。

起初,web页面不过是一些以静态html文档形式发布的科学出版物,这些文档之间只依靠一些简单的超链接(hyperlinks)绑定在一起。这可能有些难以置信,但最早的web页面的确是不支持任何图片的,但这种情况不久便得到了改善。随后web就越来越广受欢迎,规模也在不断增大,很快随着web业务的快速普及和增长,网站管理者越来越希望自己所创建的web页面能处理更多的事情。例如,他们希望网站能具有更丰富的用户交互能力,主要是能完成一些简单任务(如验证表单之类),以此节省与服务器端的信息交互。当时他们可以有两种选择:java applets和livescript。其中,livescript是1995年由netscape公司的brendan eich所开发的程序设计语言。netscape 2.0发布之后,它被正式更名为javascript。

众所周知,applets后来没落了,javascript则更加繁荣。这种通过在html中嵌入简短代码段来调整web页面中其他静态元素的方式在网站管理者间大受好评。但没过多久,浏览器的竞争厂商microsoft公司就发布了支持jscript的internet explorer(ie)3.0。jscript简直就是javascript的翻版,并且还在其继承之上引入了一些ie独有的特性。最终,为了使语言的实现更趋向于标准化,于是ecmascript应运而生了。ecma(欧洲计算机制造商协会)创建了ecma-262标准,该标准脱离了浏览器和那些web独有的特性,集中描述了javascript作为编程语言的核心部分。

大致上,javascript这个术语通常涵盖了以下3个部分。

ecmascript——语言的核心部分(即变量,函数,循环等等):这个部分独立于浏览器之外,并可以在其他环境中使用。

文档对象模型(dom):它实际上是提供了一种与html、xml文档交互的方式。最初,javascript只能提供对页面上一部分元素的有限访问能力,主要集中在表单,超链接和图片这些元素上。后来权限逐渐被扩大,如今几乎所有元素都已经可以访问了。为此,万维网联盟(w3c)还专门创建了dom标准。该标准是一种独立的(即它并不依赖于javascript)操作结构化文档的方式。

浏览器对象模型(bom):这实际上是一个与浏览器环境有关的对象集合。原本没有任何标准可言,直到html5诞生之后,人们才定义了一些浏览器之间通用的对象标准。

虽然本书专门有一个章节用于阐述浏览器、dom及bom,但大部分内容还都在讲述javascript语言的核心部分,您在这里所学到的javascript知识基本都可应用于任何javascript执行环境。

继续阅读