Javascript诞生于1995年,当时网景希望可以在客户端完成一些基本的验证任务。因为当时绝大多数互联网用户使用速度仅为28.8kb/s的调制解调器(猫)上网,当用户填写一个表单,然后等待30秒钟,最终服务器返回消息说有一个必填字段没有填。
于是,网景决定在1995年2月发布的第二版网景浏览器中开发一种名为LiveScript的脚本语言。发布前夕,网景公司临时将名字改为与当时被科技媒体炒得比较热的java扯上关系,于是将名字改为javascript,这个版本也就是javascript 1.0。
看完我写浏览器专题的小伙伴,记不记得1995年,微软正式获得了Mosaic的技术授权,开始向与网景竞争的自己产品IE浏览器中投入更多的资源。在IE3中加入了名为JScript。
javascript与JScript并立的局面,必然会导致网页兼容性的问题,标准化也逐渐提上了日程。
1997年,以javascript1.1(网景3中)为蓝本被提交给了ECMA(欧洲计算机制造商协会),该协会指定T39,负责标准化这一脚本语言,要求:通用、跨平台、供应商中立。
数月后,T39努力完成了ECMA-262(标准名)——定义一种名为ECMAScript(语言名)的新脚本语言标准。
虽然javascript与ECMAScript通常被人们用来表达相同的含义,但是javascript的含义却比ECMA-262中规定的多的多。
一个完整的javascript由下列三个不同的部分组成:
- 核心:ECMAScript
- 文档对象模型:DOM
- 浏览器对象模型:BOM
理解一下,一个运行在浏览器端的脚本语言,需要与浏览器对象沟通,了解浏览器的版本,控制浏览器的窗口,还有一些缓存的设置。同时也需要根据程序员编写的html文档内容,获取用户提交的数据,动态改变html文档内容。
ECMA-262定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。
ECMAScript的宿主环境并不是只有web浏览器,其他宿主环境还包括Node(一种服务端的javascript平台,我还不是很了解,但看到招聘信息里面也会经常出现要求会使用nodejs)、Adobe Flash。
DOM
文档对象模型,是针对XML但经过扩展用于HTML的应用程序编程接口(API)。DOM将整个页面映射为一个多层节点结构。开发人员借助DOM获得了控制页面内容以及结构的主动权。
DOM于1998年成为W3C的推荐标准,注意dom并不是指针对javascript,很多其他语言也读实现了DOM,例如SVG、MathML、SMIL(没听过啊)
BOM
浏览器对象模型,但是他不像DOM是W3C的推荐标准,BOM没有标准可循,因此每个浏览器都有自己的实现。虽然,也存在一些事实标准,例如要有window对象与navigator对象等,但是每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。HTML5的出现,使得BOM的实现细节有望朝着兼容性越来越高的方向发展。
以上内容是JAvaScript高级程序设计第一节javascript简介中的部分内容。
欢迎大家一起交流
网友评论