JavaScript简史
JavaScript诞生于1995年,最初的想法就是在人们提交表单的时候,提前做一些验证,提高用户体验。试想一下,再那个年代,因为网速很慢,提交个表单,可能要等待20几秒,再等待这么长的时间之后,服务器返回消息说有一个必填字段没有填......,介于此,Netscape的大佬觉得是时候解决一下这个令人蛋疼的事情了。
JavaScript原本是打算叫liveScript的,但怕这名字不够响亮,于是就想借着java的热潮,搭搭热炒java的顺风车,改名叫了JavaScript。JavaScript一经发布,关注度就居高不下,这也引起了当时的巨头微软的注意。微软为了抢占浏览器的市场份额,在96年8月便在其发布的Internet Explorer 3中搭载了其对JavaScript的实现——JScript。微软JScript的推出,便意味着市场上就有两套JavaScript的实现语言了(这里的JavaScript指的是一套语言规范,微软的JScript和Netscape的JavaScript都是对这套规范的实现)。因为当时还没有标准规定JavaScript语言的语法和特性,微软和Netscape的实现方法有着很多的差异,导致了很多问题,比如只编写一套代码,很难在两个平台完美运行。所以TC39协会在97年定义出了名叫ECMScript的新脚本语言规范。从此浏览器开发商就开始致力于将ECMScript作为各自JavaScript实现的基础。
JavaScript不仅是对于ECMScript的实现,它还对其进行了扩展,加入了DOM和BOM接口。加入DOM,是为了能再不刷新页面的情况下就能改变页面的内容和外观。加入BOM,一是为了提供Global对象,承载所有的全局变量,二是为了提供访问和操作浏览器的接口。所以我们所说的JavaScript其实是由ECMScript,DOM,BOM三部分构成的。我们所说的js的兼容性问题一般都是由于由于各个浏览器厂商对于DOM,BOM的实现方式不一样造成的(尤其是IE),并且各个浏览器还都有自己独有的针对DOM的扩展。
ECMAScript版本:
1.ECMAScript第一版是根据Netscape发布的JavaScript1.1 指定的,本质上与JavaScript1.1相同, 只是删除了所有针对Netscape浏览器特有的代码,以及做了一些小改动
2.ECMAScript第二版主要是对第一版的编辑加工,没有做任何的新增,修改,删除
3.ECMAScript第三版才算是对ECMAScript的第一次真正修改,修改的内容涉及字符串处理,错误处理和数值输 出,这一版还新增了对正则表达式,控制语句等的支持
4.ECMAScript第四版因为改动太大而流产,同时出现了ECMAScript3.1的替代性提案
5.因为第四版流产,ECMAScript3.1作为了ECMAScript第5版发布,此版本新增了一些新功能,比如原生的JSON对象, 继承的方法,并且消除了第三版中存在的一些歧义
6.基于流产的第四版并且经过多年的重新打磨与完善,全新的ES2015年闪亮登场,从此ES开始改为以年份命名,比如现在的ES2016,ES2017。ES6是ES2015以及之后ECMAScript的统称。