1、概括
- ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。(ECMAScript 方言还有 JScript 和 ActionScript)
- ES5指ECMAScript 5.1版,ES6指的是javascript语言的下一个版本
- ECMAScript 2015是ES6的第一个版本,简称ES2015,在2015年正式发布
- 现在ES6主要是泛指“下一代Javascript语言”,涵盖了ES2015,ES2016,ES2017等等,而ES2015是正式名称
2、如何将ES6转换为ES5代码
利用Babel
这个ES6转码器。,但是Babel
只默认转换新的Javascript语法,而不转换新的API,比如Iterator、Generator、Set、Map、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。此时可以使用
- core-js
- regenerator-runtime
为当前环境提供一个垫片
专业术语:
- polyfill:一个polyfill是一段代码(或者插件),提供了那些开发者们希望浏览器原生提供支持的功能.
- shim(shiv): 一个shim是一个库,它将一个新的API引入到一个旧的环境中,而且仅靠旧环境中已有的手段实现
- 一个polyfill就是一个用在浏览器API上的shim
- 垫片:在低级环境中用高级语法时,在低级环境中手动实现的高级功能,模拟高级环境