web-dev-qa-db-ja.com

Node.JSでの破壊

この最近のビデオ 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で構造化は本当に部分的に実装されていますか?プレイできるコードのスニペットは何ですか?

75
Randomblue

ノードv6以降の更新:Node v6は、特別な必要なしに割り当ての破壊をサポートします。

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

ノードの古いバージョンの場合:サポートされているハーモニー機能のリストを取得するには、次のように入力します。

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がNode 4.1に追加されました。現在、この機能を有効にするには--harmony_destructuringフラグを渡す必要があります。

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

最近リリースされたnode.js v6はV8バージョン5.0を使用しています。これは サポート ES2015言語機能の93%(さらに96% v6.1)。

破壊の割り当ては安定していると見なすことができ、フラグなしで使用できます。

14
birnbaum

ES6互換性テーブル は、Chrome 45、またはNode v4。

10
Dan Dascalescu