1. ECMAScript和JavaScript的关系
ECMA是“European Computer Manufacturers Association”的缩写,中文称欧洲计算机制造联合会。这个组织的目标是评估,开发和认可电信和计算机标准。
ECMA是标准, JavaScript是实现
类似HTML5是标准, IE10、Chrome、FF都是实现
目的是让所有前端脚本都实现ECMA
目前只有JavaScript实现ECMA标准, ECMAScript ≈ JS
ECMAScript简称ECMA或ES(ES6)
目前版本
高级浏览器支持ES6
低级浏览器主要支持ES3.1
ECMAScript是跨多个平台的许多厂商(包括浏览器厂商在内的各方组成)实施的不断发展的标准。ES6(ECMAScript 2015)花费六年的时间敲定,是一个很大的发行版。新的年度发布流程被制定,以简化流程并更快地添加功能。 ES11(ES2020)是目前的最新版本。推动JavaScript提案沿着一条严格的发展道路前进:
Stage 0: strawman——最初想法的提交。
Stage 1: proposal(提案)——由至少一名成员倡导的正式提案文件,该文件包括API事例。
Stage 2: draft(草案)——功能规范的初始版本,该版本包含功能规范的两个实验实现。
Stage 3: candidate(候选)——提案规范通过审查并从厂商那里收集反馈
Stage 4: finished(完成)——提案准备加入ECMAScript,但是到浏览器或者Nodejs中可能需要更长的时间
时间 | 版本 | 说明 |
1996 年 11月 | JavaScript 的创造者 Netscape 公司将 JavaScript 提交给标准化组织 ECMA。 | |
1997年 | ES1 | ECMA 发布 262 号标准文件(ECMA-262),规定了浏览器脚本语言的标准,并将这种语言称为 ECMAScript (ES). |
1998年 | ES2 | 内容编辑加工,没有特性修改。 |
1999年 | ES3 | 有较完善的修改,成为JavaScript的通行标准,得到了广泛支持。 |
2000年 | ES4 | 2008年终止也称作JavaScript 2,因改动太大没有通过,Harmony项目启动来跟进,ES4大部分内容被 ES6 继承. Harmony部分内容放到ES6之后。 |
2009年 | ES5(ES3.1) | 新功能主要包括:JSON对象(包含parse/stringify等方法)、Array和Object增加一些方法,严格模式(use strict),函数的bind方法。 |
2011年 | ES5.1 | 成为 ISO 国际标准(ISO/IEC 16262:2011), 到了2012年底,主流浏览器都支持ECMAScript 5.1的全部功能 |
2015年 | ES2015(ES6) | 做了大量的更新,但向后兼容。ES6是一次重大改进。 部分功能:let/const、变量的解构赋值、Promise、箭头函数… |
2016年 | ES2016(ES7) | 新功能主要包括: 1. Array.prototype.includes检查数组中是否存在值;(区别ES6字符串的includes方法) 2. Exponentiation Operator 求幂运算 (a ** b等价于Math.pow(a,b)) |
2017年 | ES2017(ES8) | 部分功能: 1.Object.values/entries/getOwnPropertyDescriptors 2.String.prototype.padStart/padEnd 3.函数参数列表和调用中的尾逗号(Trailing commas) 4.Async Functions 异步函数(async/await) |
2018年 | ES2018(ES9) | 现在已经可用了。新增异步迭代、Promise.finally()、Rest/Spread 属性、正则表达式命名捕获组、正则表达式反向断言、非转义序列的模板字符串...... |
接触ES6的意义
对语法的改进,功能的增加
使用Vue、React、小程序、Nodejs等都在用
ES6以上版本再等等