Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Node.js中的harmony选项在v8中无法执行数组分解分配_Javascript_Node.js_Ecmascript 6_V8_Destructuring - Fatal编程技术网

Javascript 使用Node.js中的harmony选项在v8中无法执行数组分解分配

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中启用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 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