的JavaScript。交换两个变量。这个怎么运作?

时间:2014-01-14 01:32:45

标签: javascript javascript-1.7

接下来在一个来源中看到了:

[param_o,param_got] = [param_got,param_o];

此代码交换变量param_o& param_got。但[param_o,param_got] = [param_got,param_o]如何运作,如果[]是Javascript中Array的新实例?

修改 尝试检查:

var param_o = 1;
var param_got = 2;
[param_o,param_got] = [param_got,param_o];
console.log(param_o+" "+param_got);

// 2 1

1 个答案:

答案 0 :(得分:5)

此表示法称为destructuring assignment,是Javascript 1.7的一部分:

  

解构分配使得从数组中提取数据成为可能   或使用反映数组和结构的语法的对象   对象文字。

     

对象和数组文字表达式提供了一种简单的创建方法   ad-hoc数据包。一旦你创建了这些数据包,   你可以用任何你想要的方式使用它们。你甚至可以从中归还   功能

     

您可以使用解构分配做一件特别有用的事情   是在一个语句中读取整个结构。

first sample实际上明确地证明了这对于避免代码示例中的临时变量很有用。

自Firefox 2以来,Firefox已经支持此功能。对于Chrome bug is still open after 3 years。 IE11不支持我刚刚测试的内容。