历史发展
诞生:验证操作(必填域是否输入无效值),在此之前必须把表单数据发送到服务端验证,这传输太慢。
自此以后:JavaScript成为浏览器必备特色,并且功能不局限于表单验证,具备了与浏览器窗口几乎所有方面交互的能力。并且拥有闭包、匿名函数、元编程等特性。
现如今:掌握好js需要一些功夫,下面我们了解他的本质、历史、局限性。为了JavaScript的标准化,国际上建立了ECMAScript作为标准。各公司以此为标准实现自家的“JavaScript”。
一个JavaScript由三部分组成:
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)
ECMAScript
ECMAScript与web浏览器并没有依赖关系。实际上,这门语言本身并不包含输入输出定义。
ECMA-262只是这门语言的基础,在此基础上可以构建更完善的脚本语言。
web浏览器只是ECMAScript实现可能的宿主环境之一。宿主不仅提供基本的该语言的实现,也会提供该语言的扩展(如DOM),以便实现针对环境的操作。
Node以及Adobe Flash也是宿主。正如JavaScript实现了ECMAScript,Adobe ActionScript同样也实现了ECMAScript。
ECMA-262规定了以下组成部分:
-语法
-类型
-语句
-关键字
-保留字
-操作符
-对象
文档对象模型(DOM)
DOM是针对XML但经过扩展用于HTML的应用程序编程接口。
DOM把整个页面映射为一个多层节点结构。HTML中每个组成部分都是某种类型的节点。
通过DOM创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM提供的API,开发人员可以轻松自如的删除、添加、替换、修改任何节点。
由于Netscape和微软支持不同的HTML,导致浏览器不兼容,于是人们开始制定标准限制,指定DOM级别。
浏览器对象模型(BOM)
不管是IE3还是NN3都有一个共同的特色,那就是支持可以访问和操作浏览器窗口的浏览器对象模型(BOM)。开发人员使用BOM可以控制浏览器显示的页面以外的部分。
HTML5才把BOM功能写入正式规范。
从根本上讲,BOM只处理浏览器窗口和框架,但人们习惯上把所有针对浏览器的JavaScript扩展算作BOM的一部分。
例如:
-弹出新浏览器窗口
-移动、缩放、关闭浏览器窗口
-提供浏览器详细信息的navigator对象
-提供浏览器所加载页面的详细信息的location对象
-提供用户显示器分辨率详细信息的screen对象
-对cookie的支持
-像XMLHttpRequest和IE的ActiveXObject这样的自定义对象
小结
JavaScript是一种专为与网页交互而设计的脚本语言,由以上三个部分组成。这三个部分在当前五个主要浏览器(IE、Firefox、Chrome、Safari、Opera)中都得到了不同程度的支持。
1.所有浏览器对ECMAScript第三版的支持大体上都不错,而对ECMAScript 5的支持程度越来越高
2.对DOM的支持则彼此相差很多
3.对HTML5已经正式纳入标准的BOM来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。
网友评论