- JavaScript简史
走在技术革新最前沿的Netscape公司决定着手开发一种客户端语言,用来处理表单验证的问题。
就职于该公司的Brendan Eich开始着手为计划于1995年2月发布的Netscape Navigator 2开发一种名为Livescript的脚本语言(该语言将同时在浏览器和服务器中使用)为了赶在发布日期前完成开发,Netscape与Sun公司建立了一个开发联盟。在Netscape Navigator 2 正式发布前夕,Netscape为了搭上媒体热炒Java的顺风车临时将LiveScript改名为JavaScript。
*Netscape:网景公司以其生产的浏览器Netscape Navigator而闻名。1998年11月,网景被美国在线(AOL)【美国最大因特网服务提供商之一】收购
由于JavaScript1.0大获成功的同时,微软决定向与Navigator竞争的自家孩子IE浏览器投入更多资源,在IE3中加入了名为JScript的JavaScript实现(命名为JScript是为了避开与Netscape有关授权问题)。
微软的举措意味着有了两个不同的JavaScript版本:Netscape Navigator中的JavaScript和IE中的JScript。由于当时还没有标准规定JavaScript的语法和特性,标准化问题被提上了议事日程。
1997年,以JavaScript1.1为蓝本的建议被提交给了欧洲计算机制造商协会(EMCA)该协会指定39号技术委员会(T39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”。他们经过数月的努力完成了ECMA-262,定义一种名为ECMAScript的新脚本语言的标准。
第二年,ISO/IEC(国标标准化组织和国际电工委员会)也采用了ECMAScript作为标准(即ISO/IEC-16262)从此以后,浏览器开发商就开始致力于将ECMAScript作为各自JavaScript实现的基础。
【Java是一种完全面向对象的编程语言,想要运用Java写东西就必须先设计对象,而JavaScript不一样,它是基于对象的一种脚本语言,它为开发者自带提供了很多内部对象,要更为简易省时。】
- JavaScript实现
JavaScript和ECMAScript通常被人们用来表达相同的含义,但JavaScript的含义比ECMA-262中规定的多很多。
一个完整的JavaScript实现应该由三个部分组成:
1.核心(ECMAScript)
ECMA-262规定了这门语言的语法、类型、语句、关键字、保留字、操作符和对象。ECMAScript就是对实现该标准规定的各个方面内容的语言的描述。截止目前【2019/3/15】最新版本是EMACScript9。
2.文档对象模型(DOM)
文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口(API)DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
如下面这个页面:
<html> <head> <title>Sample</title> </head> <body> <p>Hello World!</p> </body> </html>
在DOM中,这个页面可以通过下图的分层节点图表示:
3.浏览器对象模型(BOM)
从根本上讲,BOM只处理浏览器窗口和框架,但人们习惯上把所有针对浏览器的JavaScript扩展算作BOM的一部分。比如:
- 弹出新浏览器窗口的功能;
- 移动、缩放和关闭浏览器窗口的功能;
- 提供浏览器详细信息的navigator对象;
- 提供浏览器所加载页面的详细信息的location对象;
- 提供用户显示器分辨率详细信息的screen对象;
- 对cookies的支持;
- 像XMLHttpRequest和IE的ActiveObject这样的自定义对象。
由于没有BOM标准可以遵循,因此每个浏览器都有自己的实现。