4

接下来在单一来源中看到:

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

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

编辑 尝试检查:

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

// 2 1
4

1 回答 1

6

这种表示法称为解构赋值,是 Javascript 1.7 的一部分:

解构赋值使得使用反映数组和对象字面量构造的语法从数组或对象中提取数据成为可能。

对象和数组文字表达式提供了一种创建临时数据包的简单方法。一旦你创建了这些数据包,你就可以以任何你想要的方式使用它们。您甚至可以从函数中返回它们。

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

一个示例实际上明确地表明,这对于避免代码示例中的临时变量很有用。

Firefox 从 Firefox 2 开始就支持此功能。对于 Chrome,该错误在 3 年后仍然存在。从我刚刚测试的内容来看,IE11 也不支持它。

于 2014-01-14T01:37:30.593 回答