ECMAScript 6.0, 简称 ES6, 第一个版本是在 2015 年 6 月进行发布, 所以也称之为《ECMAScript 2015 标准》(简称 ES2015).Node.JS 运行时支持 90% 的 es6, 仍有一些高级功能不支持 es6.
查看 Node.JS 对 es6 的支持情况:
使用 es-checker 工具包查看
- NPM install -g es-checker
- es-checker
node v4.2.6 支持情况如下:
- ECMAScript 6 Feature Detection (v1.4.1)
- Variables
√ let and const
√ TDZ error for too-early access of let or const declarations
√ Redefinition of const declarations not allowed
√ destructuring assignments/declarations for arrays and objects
√ ... operator
Data Types
√ For...of loop
√ Map, Set, WeakMap, WeakSet
√ Symbol
√ Symbols cannot be implicitly coerced
Number
√ Octal (e.g. 0o1 ) and binary (e.g. 0b10 ) literal forms
√ Old octal literal invalid now (e.g. 01 )
√ Static functions added to Math (e.g. Math.hypot(), Math.acosh(), Math.imul() )
√ Static functions added to Number (Number.isNaN(), Number.isInteger() )
String
√ Methods added to String.prototype (String.prototype.includes(), String.prototype.repeat() )
√ Unicode code-point escape form in string literals (e.g. \u{20BB7} )
√ Unicode code-point escape form in identifier names (e.g. var \u{20BB7} = 42; )
√ Unicode code-point escape form in regular expressions (e.g. var regexp = /\u{20BB7}/u; )
√ y flag for sticky regular expressions (e.g. /b/y )
√ Template String Literals
Function
√ arrow function
√ default function parameter values
√ destructuring for function parameters
√ Inferences for function name property for anonymous functions
- * Tail-call optimization for function calls and recursion
- Array
- * Methods added to Array.prototype ([].fill(), [].find(), [].findIndex(),
- [].entries(), [].keys(), [].values() )
√ Static functions added to Array (Array.from(), Array.of() )
√ TypedArrays like Uint8Array, ArrayBuffer, Int8Array(), Int32Array(), Float64Array()
√ Some Array methods (e.g. Int8Array.prototype.slice(), Int8Array.prototype.join(),
Int8Array.prototype.forEach() ) added to the TypedArray prototypes
√ Some Array statics (e.g. Uint32Array.from(), Uint32Array.of() )
- added to the TypedArray constructors
- Object
√ __proto__ in object literal definition sets [[Prototype]] link
√ Static functions added to Object (Object.getOwnPropertySymbols(), Object.assign() )
√ Object Literal Computed Property
√ Object Literal Property Shorthands
√ Proxies
√ Reflect
Generator and Promise
√ Generator function
√ Promises
Class
√ Class
√ super allowed in object methods
√ class ABC extends Array { .. }
- Module
- * Module export command
- * Module import command
- =========================================
- Passes 38 feature Detections
- Your runtime supports 90% of ECMAScript 6
- =========================================
来源: http://www.css88.com/qa/node-js/10854.html