为了面试中侃侃而谈、工作中挥“码”自如,了解 JavaScript 的本质、历史及局限性是非常有必要的。
JavaScript 的起源DOM浏览器战争制定标准
一、JavaScript 的起源
JavaScript 是 Netscape 公司与 Sun 公司合作开发的。在 JavaScript 出现之前,网上冲浪越来越流行时,因特网已经无法满足用户更大更复杂交互需求,对于开发客户端脚本的需求也逐渐增大。
那时正处于技术革新最前沿的 Netscape,开始认真考虑开发一种客户端脚本语言来解决简单的处理问题。就在 Netscape Navigator 2.0 即将正式发布前,Netscape 将其更名为 JavaScript,目的是为了利用 Java 这个因特网时髦词汇。Netscape 的赌注最终得到回报,JavaScript 从此变成了因特网的必备组件。
JavaScript 的第一个版本,即JavaScript 1.0版本,出现在 1995 年推出的 Netscape Navigator 2 浏览器中。
二、DOM
DOM 就是文档对象模型(Document Object Model)。简单地说,DOM 是一套对文档的内容进行抽象和概念化的方法;它定义了访问和操作 HTML 文档的标准方法,将文档表达为树结构,如图:
三、浏览器战争
Netscape Navigation 4 发布于 1997 年6 月, IE 4 发布于同年 10 月。两种浏览器都对它们的早期版本进行了许多改进,大幅扩展了 DOM,使能够通过 JavaScript 完成的功能大大增加。
不幸的是,NN 4 和 IE 4 浏览器使用的是两种不兼容的 DOM。
Netscape 公司的 DOM 使用了专有元素,这些元素称层(layer)。层有唯一的 ID,如:
document.layers['myelement']
而在微软公司的 DOM 中这个元素必须这样应用:
document.all['myelement']
这就导致一个可笑的局面:程序员在实际工作中,许多脚本不得不编写两次。因此,没多少,DHTML 就从一个大热门变成了一个人们不愿提起的名词。
浏览器市场份额大战中,微软公司战胜了 Netscape,因为所有运行 Windows 操作系统的个人电脑都预装了 IE 浏览器。
四、制定标准
就在浏览器制造商以 DOM 为武器展开营销大战的同时, W3C 不事声张地结合大家的优点推出一个标准化的 DOM。令人欣慰的是,Netscape、微软和其他一些浏览器制造商们还能抛开彼此的敌意而与 W3C 携手制定新的标准,并于 1998 年 10 月完成了 “第1级 DOM”(DOM Level 1)
W3C 对 DOM 的定义是:“一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地访问和修改文档的内容、结构和样式。” W3C 推出的标准化 DOM,在独立性和适用范围等诸多方面,都远远超出了各自为战的浏览器制造商们推出的各种专有 DOM
参考文献:
1、w3school 在线教程
2、《JavaScript》DOM 编程艺术(第二版)