在JavaScript中多个分配? = 是什么? 意思?

对于一个项目,开发者向我们发送一个.js文件,代码如下:

var myList = [1,2,3]; var a,b,c; [a,b,c] = myList; 

它在Opera 10.30,Firefox 3.6.x中可用,但Opera 10.60和Chrome并不适用。

这只是好奇心,你有没有任何参考或链接,说这个代码是符合JS / ECMA标准或不?

你怎么看?

这是一个称为解构赋值的特性,它是在JavaScript 1.7和ECMAScript 6中添加的。它不是ECMAScript 5的一部分: 跨浏览器对JavaScript 1.7新特性的支持是什么? 具体的数组理解和“let”语句

这是解构赋值,在Javascript 1.7(mozilla)和一些较新的浏览器中可用: http : //www.robertnyman.com/javascript/javascript-1.7.html#destructuring-assignment

Opera的老版本的“futhark”JavaScript引擎已经支持这个function,但是新引擎“carakan”却放弃了这个引擎,因为它是非标准的,在networking上是不需要的,而且会使新的和快速的实现复杂化。

以下是关于此主题的更新:从JavaScript 1.7版开始 ,所有主stream浏览器都支持解构分配:请参阅此处的浏览器兼容性。

解构赋值语法是一个JavaScriptexpression式,它可以将数组中的值或对象的属性解压到不同的variables中。

– MDN的文件

所以你可以这样做:

 let a, b; [a, b] = ["Hello, "World"]; console.log(a); // "Hello" console.log(b); // "World"