数组解构赋值在 v8 中不起作用,Node.js 中的和谐选项

Array destructuring assignment not working in v8 with harmony option in Node.js

本文关键字:js Node 和谐 选项 不起作用 赋值 v8 数组      更新时间:2023-09-26

我想学习如何在 Node 中启用 harmony v8 选项,我的节点版本是:

$ 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 引擎中的一个错误。

'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_destructuring时确实有效。

看起来实验功能尚未完全符合规范。

V8

的相关错误报告在 2015 年 12 月将此问题标记为已修复,因此现在我们只需要等待更新的 V8 进入 Node。 @mscdex通知我此修复程序将在 Node v6.0.0 中提供。

解构被破坏了。

进行中的功能可以通过其各自的和谐标志(例如 --harmony_destructuring)单独激活,尽管除非出于测试目的,否则强烈建议不要这样做。

https://nodejs.org/en/docs/es6/和这个答案 在节点中解构.JS