本篇内容
  • JavaScript是什么
  • JavaScript构成
  • JavaScript历史及版本(兼容)

JavaScript是什么

JavaScript ( JS ) 是具有头等函数的轻量级解释或JIT编译型的编程语言。 —— MDN

JavaScript(js)诞生于1995年,早期用于客户端的数据验证,发展至今已成为一门强大且热门的编程语言。其不仅具备了于浏览器窗口及其内容等各方面交互的能力,并且在很多非浏览器环境中得到应用,如node.jsApache CouchDB。其介绍就不具体展开,初学者可以参考MDN-《是什么JavaScript?》

JavaScript构成

JavaScript组成

1.ECMAScript

ECMAScript是形成JavaScript语言基础的脚本语言。ECMAScript是由Ecma国际标准组织以ECMA-262和ECMA-402规范的形式进行标准化的。 ——MDN

ECMAScript(ES)是js的核心,js实现了ECMAScript,是ECMAScript的超集。自2015年起,ECMAScript每年发布一次新标准,ECMAScript2018是目前最新的ECMAScript草案至今(2017-11-05)的几个关键版本:

  • ECMAScript5(ES5):至2012年,所有主流浏览器都完整支持了es5.1,因此大部分公司对于客户端的兼容要求在es5版本。
  • ECMAScript2015(ES6):2015年6月17日,ECMA国际组织发布了ECMAScript的第六版(正式名称为ECMAScript 2015),习惯性称为ES6。至今浏览器对ES6的兼容仍是很糟糕,因此不建议作为客户端生产版本发布,但其语法糖大大提高了开发效率及阅读性,因此深受广大开发者认可,很多开发者以ES6语法进行开发最后以babel编译为ES5后再发布客户端。(此套路pc端IE8及以下有坑,移动端及nodejs无压力)

web浏览器和ECMAScript的关系:

文档对象模型(DOM)

文档对象模型(DOM,Document Object Model)是针对XML但经过拓展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。

  • 作用:给予开发人员控制页面内容和结构的主动权。我们可以借助DOM删除、添加、替换或者修改页面节点。
  • DOM1~3:DOM1目标主要是映射文档结构,由DOM核心(DOM Core)和DOM HTML两个模块构成,其中DOM核心规定的是如何映射基于XML的文档结构,DOM HTML添加了针对HTML的对象和方法;DOM2在DOM1的基础上又扩充了鼠标和用户界面事件、范围、遍历等细分模块,并增加了对CSS的支持。(新增DOM Views、DOM Events、DOM Style、DOM Traversal and Range模块);DOM3进一步引入了以统一方式加载和保存文档的方法,新增了验证文档的方法(新增DOM Load and Save、DOM Validation模块)。

提示:SVG、MathML、SMIL等语言基于XML,每种语言的DOM标准都添加了与特定语言相关的新方法和新接口。

浏览器对象模型BOM

从根本上来讲,BOM(Browser Object Model)只处理浏览器窗口和框架。人们习惯上把所有针对浏览器的JavaScript拓展算作BOM的一部分:

  • 弹出新浏览器窗口的功能;
  • 移动、缩放和关闭浏览器窗口的功能;
  • 提供浏览器详细信息的navigator对象;
  • 提供浏览器所加载页面的详细信息的location对象;
  • 提供用户显示器分辨率详细信息的screen对象;
  • 对cookie、storage等的支持;
  • 像XMLHttpRequest和IE的ActiveObject这样的自定义对象

JavaScript历史及版本(兼容)

历史

  • 1995年12月4日,Netscape公司与Sun公司联合发布了JavaScript语言。值得一提的是,17天之后Ruby语言也发布了它的第一个版本。
  • 1996年3月,Navigator 2.0浏览器正式内置了JavaScript脚本语言。
  • 1996年8月,微软模仿JavaScript开发了一种相近的语言,取名为JScript(JavaScript是Netscape的注册商标,微软不能用),首先内置于IE 3.0。
  • 1996年11月,网景公司决定将JavaScript提交给国际标准化组织ECMA,希望JavaScript能够成为国际标准,以此抵抗微软。
  • 1997年7月,ECMA组织发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。这个版本就是ECMAScript 1.0版。
  • 1998年6月,ECMAScript 2.0版发布。
  • 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
  • ……

兼容

以目前各浏览器的使用情况来看,绝大多数浏览器对ES5以及DOM有着良好的兼容,BOM因浏览器而异所以也没有兼容性之说,下面是部分主流浏览器的兼容情况:

部分浏览器对ECMAScript5兼容情况

IE

浏览器 ECMAScript兼容性
IE5 第1版
IE5.5~7 第3版
IE8 第5版(不完全兼容)
IE9及以上 第5版

chrome

浏览器 ECMAScript兼容性
chrome1~3 第3版
chrome4~22 第5版 (不完全兼容)
chrome23及以上 第5版

Firefox

浏览器 ECMAScript兼容性
Firefox1~3.0 第3版
Firefox3.5~20 第5版(不完全兼容)
Firefox21及以上 第5版

Safari

浏览器 ECMAScript兼容性
Safari~2.0 第3版(不完全兼容)
Safari3 第3版
Safari4~5.1 第5版(不完全兼容)
Safari6.1及以上 第5版

Opera

浏览器 ECMAScript兼容性
Opera6~7.1 第2版
Safari7.2-10 第3版
Safari10.1-12.1 第5版(不完全兼容)
Safari15及以上 第5版

部分浏览器对DOM的兼容情况

IE

浏览器 DOM兼容性
IE5 第1级(不完全)
IE5.5~8 第1级
IE9及以上 第1、2、3级

chrome、Firefox

浏览器 DOM兼容性
chrome1及以上 、Firefox1及以上 第1、2级

Safari

浏览器 DOM兼容性
Safari1 第1级
Safari2及以上 第1、2级

Opera

浏览器 DOM兼容性
Safari7~8 第1、2级
Safari9及以上 第1、2、3版

小提示:一般兼容性查询都可通过caniuse.com

温习:

  • JavaScript是什么类型的语言
  • JavaScript的组成
  • JavaScript各组成的简介和兼容性

(完)