var var1 = 1, var2 = 1, var3 = 1;这相当于:var var1 = var2 = var3 = 1;我很确定这是变量定义的顺序:var3,var2,var1,它等价于:var var3 = 1, var2 = var3, var1 = var2;有没有办法在JavaScript中确认这一点?可能使用一些分析器?
3 回答
泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
其实,
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));
一只斗牛犬
TA贡献1784条经验 获得超2个赞
javascript中的赋值从右到左工作。var var1 = var2 = var3 = 1;。
如果这些变量的值是1该语句之后,那么在逻辑上它必须从右边开始,否则价值或var1和var2将是不确定的。
您可以将其视为等同于var var1 = (var2 = (var3 = 1));首先评估最内部括号集的位置。
添加回答
举报
0/150
提交
取消