let c=b=a=1;
连续赋值语法,每个变量的值都等于最右边的结果
如果加了括号 含义有一点不太一样
let c = (b = a);
可以认为把括号中的结果赋值给c
, 问题就变成了 b = a
返回的结果是多少。
一个例子
let a;
console.log(a = 1); // 输出1,注意和 条件判断a == 1区别
再来一个复杂的例子
let a = 1;
let b;
let c = ((b = a) + 1);
console.log(a,b,c); // 输出 1 1 2
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…