使用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!
实际上这表明作业是正确的关联。 坏
示例相当于:
Actually this shows that assignment are right associative. The bad
example is equivalent to:
var var1 = (window.var2 = (window.var3 = 1));
这篇关于使用JavaScript进行多次左手分配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文