Javascript 使用Node.js中的harmony选项在v8中无法执行数组分解分配
我想学习如何在Node中启用harmony v8选项,我的Node版本是:Javascript 使用Node.js中的harmony选项在v8中无法执行数组分解分配,javascript,node.js,ecmascript-6,v8,destructuring,Javascript,Node.js,Ecmascript 6,V8,Destructuring,我想学习如何在Node中启用harmony v8选项,我的Node版本是: $ node -v v5.5.0 以ES6解构为例进行测试 $ cat destructure.js 'use strict' var a, b [a, b] = [1, 2] console.log(a, b) 直接运行它会得到预期的错误 $ node destructur
$ node -v
v5.5.0
以ES6解构为例进行测试
$ cat destructure.js
'use strict'
var a, b
[a, b] = [1, 2]
console.log(a, b)
直接运行它会得到预期的错误
$ node destructure.js
/usr/home/mko_io/pure-js-files/destructure.js:3
[a, b] = [1, 2]
^^^^^^
但在设置标志后,会出现相同的错误:
$ node --harmony_destructuring destructure.js
/usr/home/mko_io/pure-js-files/destructure.js:3
[a, b] = [1, 2]
^^^^^^
ReferenceError: Invalid left-hand side in assignment
我哪里做错了?显然这是V8 JavaScript引擎中的一个bug
'use strict'
var a, b
[a, b] = [1, 2]
console.log(a, b)
不起作用但是
'use strict'
var [a, b] = [1, 2]
console.log(a, b)
当使用--harmony\u解构时,是否有效
看起来实验性功能尚未完全符合规范
这个问题在2015年12月被标记为已修复,所以现在我们只需要等待更新的V8进入节点。已通知我此修复程序将在Node v6.0.0中可用。解构已损坏
正在进行的功能可以通过各自的和谐标志(例如--harmony_destructuring)单独激活,但除非出于测试目的,否则不鼓励这样做
这个答案它已经在node master中运行,因此将在即将发布的node v6.0.0中使用。谢谢你,Alex,我认为启用v8标志可以使我比在浏览器中测试更容易地了解新功能。Nit:这不是一个bug,只是尽管外观不同,但仍会进行解构(绑定)和解构分配是完全独立的特性(在语言规范和实现方面),V8首先提供了前者。后者紧跟在--harmony destructuring assignment
标志之后。或者您可以升级到节点6.5v