ES5,6,7浅析

来源:互联网 发布:我生也有涯而知也无涯 编辑:程序博客网 时间:2024/06/04 00:35

ECMAScript

ES是EXMAScript的简称,是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。

历史

1998年6月,ECMAScript 2.0版发布。
1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。以Yahoo、Microsoft、Google为首的大公司,反对JavaScript的大幅升级,主张小幅改动;以JavaScript创造者Brendan Eich为首的Mozilla公司,则坚持当前的草案。
2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。
2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。
2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015。

虽然从来没记过这些,不过也要写上,专业!

ES5

ES5作为2009年的语言,已经使用了好几年了,在这个方面的浏览器支持都还不错,至少新型浏览器都是支持的,IE9以上的浏览器支持都不错,顺便问一句还有支持ie9以下的公司还多么,在ES5中主要扩展了Object、Array、Function这几个对象的方法,还有我工作中经常处理json的JSON.parse和JSON.stringify。像这些属性感觉配合underscore一起使用风味更佳。
详见 ES5新特性
ES5兼容性对照表

ES6

ES6作为2015年发布的, ES2015==ES6(true),常用于nodejs,虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了,所以该懂点ES6的语法了。为了使用ES6的语法体验下新的技术,你需要使用babel,Babel是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行(intersting)。
ES6十大新特性(英文)
ES6兼容性对照表
最常用的ES6特性let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments
详见 ES6常用特性

ES5,6浏览器支持情况

ES7

es7目前用的比较少,也是我之前面试的时候面试官问到的,听到之后就尴尬了,我靠,还有这家伙的?
ES7中主要是Object.observe和async,说实话感觉不懂,但我还是会可耻的推荐几篇
详见 如何评价 ECMAScript 2016(ES7)只新增2个特性?

0 0