var var1 = 1, var2 = 1, var3 = 1;
这相当于:
var var1 = var2 = var3 = 1;
我相当确定这是定义变量的顺序:var3、var2、var1,这相当于:
var var3 = 1, var2 = var3, var1 = var2;
有没有办法在 JavaScript 中确认这一点?可能使用一些探查器?
实际上,
不 等于 :
区别在于范围:
function good() { var var1 = 1, var2 = 1, var3 = 1; } function bad() { var var1 = var2 = var3 = 1; } good(); console.log(window.var2); // undefined bad(); console.log(window.var2); // 1. Aggh!
实际上这表明赋值是右结合的。该bad示例等效于:
bad
var var1 = (window.var2 = (window.var3 = 1));