support pass operator objects es6 ecmascript assignment array javascript node.js ecmascript-6 destructuring

javascript - pass - Destructuring en Node.JS



js destructuring support (3)

Este video reciente afirma que la desestructuración de EMCAScript 6 ya está parcialmente implementada en Node.JS. He intentado con varios ejemplos (usando v0.10.12 y la bandera --harmony), como

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

y

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

en vano. Este ticket parece sugerir que la desestructuración aún no es compatible con V8.

¿La desestructuración se implementa parcialmente en Node.JS? ¿Qué son fragmentos de código con los que puedo jugar?


El node.js v6 recientemente lanzado usa V8 versión 5.0 que supporting 93% de las características del lenguaje ES2015 (incluso el 96% en v6.1).

Las asignaciones de desestructuración ahora se pueden considerar estables y se pueden usar sin ningún indicador.



Actualización para el nodo v6 y más reciente : el nodo v6 admite la asignación de desestructuración sin necesidad de ningún elemento especial:

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

Para versiones anteriores de nodo : puede obtener la lista de características de armonía compatibles escribiendo:

node --v8-options | grep harmony

el nodo 5.x te dará:

--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")

La bandera que necesita, --harmony_destructuring , se agregó en el Nodo 4.1. Actualmente, deberá pasar el indicador --harmony_destructuring para habilitar la función:

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