Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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中的多重赋值?[a,b,c]=[1,2,3]是什么;什么意思?_Javascript_Google Chrome_Standards_Opera - Fatal编程技术网

javascript中的多重赋值?[a,b,c]=[1,2,3]是什么;什么意思?

javascript中的多重赋值?[a,b,c]=[1,2,3]是什么;什么意思?,javascript,google-chrome,standards,opera,Javascript,Google Chrome,Standards,Opera,对于一个项目,一位开发人员向我们发送了一个.js文件,其代码如下: var myList = [1,2,3]; var a,b,c; [a,b,c] = myList; 它适用于Opera10.30、Firefox 3.6.x,但不适用于Opera10.60和Chrome 这只是好奇,你有没有参考或链接说这段代码符合JS/ECMA标准 你觉得怎么样?这是一个分解分配,在Javascript 1.7(mozilla)和一些较新的浏览器中提供:这是一个名为的功能,它是在Javascript 1.

对于一个项目,一位开发人员向我们发送了一个.js文件,其代码如下:

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

[a,b,c] = myList;
它适用于Opera10.30、Firefox 3.6.x,但不适用于Opera10.60和Chrome

这只是好奇,你有没有参考或链接说这段代码符合JS/ECMA标准


你觉得怎么样?

这是一个分解分配,在Javascript 1.7(mozilla)和一些较新的浏览器中提供:

这是一个名为的功能,它是在Javascript 1.7和ECMAScript 6中添加的。它不是ECMAScript 5的一部分:

Opera较旧的“futhark”JavaScript引擎对此有支持,但它在新引擎“carakan”中被删除,因为它是非标准的,在web上不是必需的,并且会使新的非常快速的实现复杂化。

以下是关于这个主题的更新:截至,所有主要浏览器都支持分解分配:请参阅

destructuring assignment语法是一个JavaScript表达式,它可以将数组中的值或对象中的属性解压缩到不同的变量中

因此,您可以:

let a, b;
[a, b] = ["Hello", "World"];

console.log(a); // "Hello"
console.log(b); // "World"
或者,如果定义变量,只需在一行中:

let [a, b] = ["Hello", "World"];

console.log(a); // "Hello"
console.log(b); // "World"

我很高兴地发现,自从Chrome版本49()以来,桌面Chrome就引入了这一功能。我已经在我的Chrome扩展代码中验证过了。如果有人来这里想知道,你可以做
var[a,b,c]=myList具有相同的效果。