var var1 = 1,
var2 = 1,
var3 = 1;
This is equivalent to this:
var var1 = var2 = var3 = 1;
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;
Is there any way to confirm this in JavaScript? Using some profiler possibly?
Actually,
var var1 = 1, var2 = 1, var3 = 1;
is not equivalent to:
var var1 = var2 = var3 = 1;
The difference is in scoping:
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));