有两个变量,现在想要交换它们的值,常规的做法是声明一个临时变量 temp:
var a = 10,b = 20;
var temp = a;
a = b;
b = temp;
上面这种方法要实现变量交换,需要定义一个临时变量做中转,但是,利用数组可以这样设计:
var a = 10,b = 20;
a = [b,b = a][0]; //通过数快速交换数据
这种做法是通过定义一个匿名数组,把变量 b 的值传递给第一个元素,然后在第二个元素中以赋值表达式运算的方式把变量 a 的值传递给变量 b,同时通过数组下标的方法获取第一个元素的值并赋值给变量 a。这样变量 a 和 b 就在一个数组表达式中被快速置换了。
var a = 10,b = 20;
[a,b] = [b,a]; //通过ES6语法的析构赋值