Soru Node.JS'deki yıkım


Bu son video EMCAScript 6 yıkımının zaten Node.JS'de kısmen uygulandığını iddia ediyor. Çeşitli örnekleri denedim (v0.10.12 kullanarak ve --harmony gibi)

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

ve

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

boşuna. Bu bilet V8'de yıkımın henüz desteklenmediğini öne sürüyor.

Node.JS'de gerçekten kısmen uygulanan yıkım mı? Ben oynayabileceğim kod parçacıkları nelerdir?


73
2018-06-29 10:34


Menşei




Cevaplar:


Düğüm v6 ve daha yeni sürüm için güncelleştirme: Node v6, özel bir şeye ihtiyaç duymadan imha görevini destekler:

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

Düğümün eski sürümleri için: Yazarak desteklenen uyumluluk özelliklerinin listesini alabilirsiniz:

node --v8-options | grep harmony

node 5.x size verecek:

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

İhtiyacın olan bayrak, --harmony_destructuring, Düğüm 4.1'e eklenmiştir. Şu anda, --harmony_destructuring özelliği etkinleştirmek için bayrak:

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

88
2018-06-29 11:29



Henüz işe yaramadı garip var. - Brian McCutchon
@BrianMcCutchon Olmadan varyapmanız gerekecek ({foo} = {foo: 'bar}) öncü önlemek { bir blok başlatmak olarak yorumlanmaktan. Bu herhangi bir uygulamada aynı.
@torazaburo İlginç, bunu düşünmemişti. Onu atlayabilmen gerekiyordu. var/let Ne zaman yıkım dizileri, ancak, henüz düğümde çalışmıyor gibi görünüyor. - Brian McCutchon


Son zamanlarda piyasaya sürüldü node.js v6 V8 sürüm 5.0 kullanıyor destekleyici ES2015 dil özelliklerinin% 93'ü (v6.1'de% 96).

Yıkıcı görevler artık kararlı kabul edilebilir ve herhangi bir bayrak kullanılmadan kullanılabilir.


14
2018-05-09 11:26





ES6 uyumluluk tablosu Yapılandırma, Chrome 45 veya Node v4'te desteklemenin desteklenmediğini gösterir.


10
2017-10-02 23:45



Bile node --harmony_destructuring  - Ahmed Fasih
Node v5.0.0 ile çalışır node --harmony_destructuring. Ben v4 hakkında bilmiyorum. - kernel
-harmony_destructuring ile düğüm 4.2.2 benim için çalışır - Oleksii Rudenko
En son Chrome (49) yıkımından şu anda destekleniyor. Chrome'a ​​veya Düğüm'e (uygun bayraklarla) sadık kaldığınız sürece artık Babil gibi bir aktarıma ihtiyaç duymadan hemen hemen tüm ES6'ları kullanabilirsiniz. - machineghost