1.JavaScript历史回顾
在上个世纪90年代上网是需要拨号的,而且网络还不稳定。网页中表单验证是需要与服务器进行往返通信的,试想在用户好不容易将表单的内容填写完毕,提交等待n秒,服务端返回某某信息不正确...。然后当时引领技术革新的大厂-网景,提出将开发一种脚本语言来专门处理数据验证的业务场景。
2.JavaScript是什么
ECMAScript
ECMAScript是一个标准,javascript就是依据这个标准来实现的,通俗来说就是,这玩意就是规定你js就必须听我的,"我说的话你就照办,我没说的你不能乱来".
DOM
文档对象模型是一个API,他将HTML的那些标签转为了有层级关系的树形结构。 例如
<html>
<head>
<title>HTML</title>
</head>
<body>
<p>hello world!</p>
</body>
</html>
这些代码通过DOM可以处理为一组分层节点,如下方所示:
BOM
浏览器对象模型,我认为就是基于浏览器的扩展,例如:弹出新窗口、移动缩放和关闭窗口的能力、navigator对象(关于浏览器的详尽信息)、location对象(浏览器加载页面的详尽信息)、screen对象(提供关于用户屏幕分辨率的信息)、performance对象(提供浏览器内存占用、导航行为和时间统计的信息)、cookie等。
3.JavaScript与ECMAScript的关系
一句话:"JavaScript是ECMAScript的一种实现,ECMAScript定义了JavaScript的规范和功能。"
4.JavaScript的不同版本
作为网景的继承者,Mozilla是唯一仍在延续最初javaScript版本编号的浏览器厂商,当初网景在将源代码开源时(项目名为:MozillaProject),javaScript在其浏览器中的最后版本时1.3.随着JavaScript的持续开发,版本号也在不断递增,下图展示了Netscape/Mozilla浏览器发布的历代JS版本:
| 浏览器 | js版本 |
|---|---|
| Netscape Navigator 2 | 1.0 |
| Netscape Navigator 3 | 1.1 |
| Netscape Navigator 4 | 1.2 |
| Netscape Navigator 4.06 | 1.3 |
| Netscape 6+(Mozilla 0.6.0+) | 1.5 |
| Firefox 1 | 1.5 |
| Firefox 1.5 | 1.6 |
| Firefox 2 | 1.7 |
| Firefox 3 | 1.8 |
| Firefox 3.5 | 1.8.1 |
| Firefox 3.6 | 1.8.2 |
| Firefox 4 | 1.8.5 |
这种版本编号方式是根据Firefox 4要发布JS 2.0决定的,在此之前版本号的每次递增,反映的是JS实现逐渐接近2.0建议。虽然这是最初的计划,但是JS的发展让这个计划变得不可能。JS2.0作为一个目标已经不存在了,而这种版本号编排方式也定格在了Firefox4了。
tip: Netscape/Mozilla仍然沿用这种版本方案。而IE的JScript有不同的版本号规则。这些JScript版本上与上表中提到的JavaScript版本并不是对应的。此外,多数浏览器对JavaScript的支持,指的是实现ECMAScript和DOM的程度。