我可以在节点js中做 = 吗?

我希望能够在节点js中进行这种分配:

[a,b,c] = [1,2,3] 

或者就像在python中一样

 a,b,c = 1,2,3 

所以我会有a = 1,b = 2和b = 3。

其实这样做的目的是做类似的事情

 [a,b,c] = somefunc() 

或数组声明

 [a,b,c] = [[],[],[]] 

有任何想法吗?

还没有 – Node.js使用V8引擎,它实现ECMA脚本5。

但是这个function在下一个ECMA Script 6发行版中是可行的。 这是在这个博客文章或这个维基上描述的 。 V8(也就是Node.js)将按照这个问题来实现它。

一旦实施,它将如下所示:

 [a, b] = [b, a] 

或这个:

 function f() { return [1, 2, 3] } var [a, , b] = f(); 

(来自wiki的例子)。


如果你真的需要这个,你总是可以使用像Google Traceur编译器这样的工具,它允许你编写ES6代码并将其“编译”成与所有现代浏览器(和Node.js)兼容的JavaScript。

“节点”不是一种语言。 你真的问是否可以在JavaScript中做到这一点,不,你不能。 在JavaScript中没有任何forms的解构分配 (在1.7之前),并且没有办法像这样的工作。 你不能分配给一个数组。

除非你使用JavaScript 1.7。 那么它将按照你写的那样工作。