Multiple assignment in javascript? What does [a,b,c] = [1, 2, 3]; mean?

napolux picture napolux · Oct 21, 2010 · Viewed 9.2k times · Source

For a project a developer sent us a .js file with code similar to this:

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

[a,b,c] = myList;

It works in Opera 10.30, Firefox 3.6.x but it's not ok for Opera 10.60 and Chrome.

It's just curiosity, do you have any reference or link that says this code is compliant to JS/ECMA standard or not?

What do you think?

Answer

ide picture ide · Oct 21, 2010

This is a feature called destructuring assignment, which was added in JavaScript 1.7 and ECMAScript 6. It is not a part of ECMAScript 5: What is cross browser support for JavaScript 1.7's new features? Specifically array comprehensions and the "let" statement