使用 JavaScript 进行多项左手赋值 [英] Multiple left-hand assignment with JavaScript
本文介绍了使用 JavaScript 进行多项左手赋值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
var var1 = 1,
var2 = 1,
var3 = 1;
这相当于:
var var1 = var2 = var3 = 1;
我很确定这是变量定义的顺序:var3、var2、var1,这相当于:
I'm fairly certain this is the order the variables are defined: var3, var2, var1, which would be equivalent to this:
var var3 = 1, var2 = var3, var1 = var2;
有没有办法在 JavaScript 中确认这一点?可能使用一些分析器?
Is there any way to confirm this in JavaScript? Using some profiler possibly?
推荐答案
其实,
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
示例相当于:
Actually this shows that assignment are right associative. The bad
example is equivalent to:
var var1 = (window.var2 = (window.var3 = 1));
这篇关于使用 JavaScript 进行多项左手赋值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文