Разрушение в Node.JS

javascript node.js ecmascript-6 destructuring

35485 просмотра

3 ответа

Это недавнее видео утверждает, что деструктуризация 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? С какими фрагментами кода я могу играть?

Автор: Randomblue Источник Размещён: 12.11.2019 09:27

Ответы (3)


88 плюса

Решение

Обновление для узла v6 и новее : Узел 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'
Автор: Laurent Perrin Размещён: 29.06.2013 11:29

14 плюса

Недавно выпущенный node.js v6 использует V8 версии 5.0, которая поддерживает 93% языковых функций ES2015 (даже 96% в v6.1).

Деструктурирующие назначения теперь можно считать стабильными и могут использоваться без каких-либо флагов.

Автор: birnbaum Размещён: 09.05.2016 11:26

10 плюса

В таблица совместимости ES6 показывает , что деструктурирующий не поддерживается в любом Chrome 45, или узел V4.

Автор: Dan Dascalescu Размещён: 02.10.2015 11:45
Вопросы из категории :
32x32