在Node.JS中解构

这个最近的video声称,EMCAScript 6解构已经部分在Node.JS中实现。 我已经尝试了各种示例(使用v0.10.12和–harmony标志),如

 var [a, b] = [1, 2]; 

 var {a: a, b: b} = {a: 1, b: 2}; 

无济于事。 这张票似乎表明解构还没有在V8中得到支持。

Node.JS中的解构是否部分实现? 什么是我可以玩的代码片段?

节点v6和更新的更新 :节点v6支持解构赋值,没有任何特殊的需要:

 var [a, b] = [1, 2]; 

对于较旧版本的节点 :您可以通过键入以下命令来获得支持的和声function列表:

node --v8-options | grep harmony

节点5.x会给你:

 --es_staging (enable all completed harmony features) --harmony (enable all completed harmony features) --harmony_shipping (enable all shipped harmony fetaures) --harmony_modules (enable "harmony modules" (in progress)) --harmony_regexps (enable "harmony regular expression extensions" (in progress)) --harmony_proxies (enable "harmony proxies" (in progress)) --harmony_sloppy_function (enable "harmony sloppy function block scoping" (in progress)) --harmony_sloppy_let (enable "harmony let in sloppy mode" (in progress)) --harmony_unicode_regexps (enable "harmony unicode regexps" (in progress)) --harmony_reflect (enable "harmony Reflect API" (in progress)) --harmony_destructuring (enable "harmony destructuring" (in progress)) --harmony_default_parameters (enable "harmony default parameters" (in progress)) --harmony_sharedarraybuffer (enable "harmony sharedarraybuffer" (in progress)) --harmony_atomics (enable "harmony atomics" (in progress)) --harmony_simd (enable "harmony simd" (in progress)) --harmony_array_includes (enable "harmony Array.prototype.includes") --harmony_tostring (enable "harmony toString") --harmony_concat_spreadable (enable "harmony isConcatSpreadable") --harmony_rest_parameters (enable "harmony rest parameters") --harmony_sloppy (enable "harmony features in sloppy mode") --harmony_arrow_functions (enable "harmony arrow functions") --harmony_new_target (enable "harmony new.target") --harmony_object_observe (enable "harmony Object.observe") --harmony_spreadcalls (enable "harmony spread-calls") --harmony_spread_arrays (enable "harmony spread in array literals") --harmony_object (enable "harmony Object methods") 

您需要的标志--harmony_destructuring已添加到节点4.1中。 目前,您需要传递--harmony_destructuring标志来启用该function:

 $ node --harmony_destructuring > var {foo} = {foo: 'bar'}; undefined > foo 'bar' 

最近发布的node.js v6使用V8 5.0版本, 支持 93%的ES2015语言特性(甚至在6.1版本中为96%)。

解构赋值现在可以被认为是稳定的,可以在没有任何标志的情况下使用。

ES6兼容性表格显示,在Chrome 45或Node v4中不支持解构。