JS中的[a, b] = [b, a+b];
作为一名码农,我们肯定会离不开菲波那切数列,简单介绍一下它,n=(n-1) + (n-2),那么在js中,我们通常会看到一些人用这么一行代码来解决:[a, b] = [b, a+b];
(Python中也经常这么使用)
具体分析如下:
var arr = [0, 1];
var
a = 0;
b = 1;
max = 5;
n = 0;
while(n < max){
n++;
[a, b] = [b, a+b];
arr.push(b);
}
console.log(arr);
可以看出来,[a, b] = [b, a+b];
起到了var t = a + b;a = b;b = t;
的作用,或者说是这段代码的精简版(省略了中间变量t的申请),实际上,它的运算顺序是从右到左的,先计算b和a+b,然后将b的值赋予a,再将a+b的值赋予b,以此来达到预期的计算结果。