var var1 = 1,
var2 = 1,
var3 = 1;
这等价于:
var var1 = var2 = var3 = 1;
我很确定这是定义变量的顺序:var3, var2, var1,相当于这样:
var var3 = 1, var2 = var3, var1 = var2;
有没有办法在 JavaScript 中确认这一点?可能使用一些分析器?
最佳答案
其实
var var1 = 1, var2 = 1, var3 = 1;
不等价于:
var var1 = var2 = var3 = 1;
区别在于范围:
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
示例等价于:
var var1 = (window.var2 = (window.var3 = 1));
关于javascript - 使用 JavaScript 进行多个左手赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758576/