本文标题有误导性,因为我其实想写node8的新特性,说实话一下子从node v1.x跳跃到node 8.x+ 真有点受宠若惊的感觉。一直觉得node 数组、 对象、序列等的处理没有python方便,因为需要借助外部的一些包比如underscore /lodash才能实现,但是接下来是见证奇迹的时刻,es6/7/8让node代码变的更简洁、更易懂。
Node.js的优点之一就是前后端用同一种语言,本质上还是js,因此可以通过babel来使nodejs支持对应的ECMAScript。
目录如何让Nodejs支持对应的ES
let && const
iterable类型
解构赋值
=>函数
...操作符
类
ES7新特性
Array.prototype.includes
Exponentiation Operator(求幂运算)
ES8新特性
Object.values/Object.entries
String padding(字符串填充)
Object.getOwnPropertyDescriptors
函数参数列表和调用中的尾逗号(Trailing commas)
异步函数(Async Functions)
如何让Nodejs支持对应的ES不同版本的Node.js对Babel有不同的支持,如若是Nodejs支持ES6语法,需要引入babel。因此要安装一些babel的依赖包,如babel-preset-es2015 / babel-core /babel-cli。
ES6对应es2015,ES7对应es2016,ES8对应es2017,同时对应支持的node更高。
检测ES6可以使用es-checker来检测当前Node.js对ES6的支持情况,全局安装es-checker
$ npm install -g es-checker