小编典典

使用 JavaScript 进行多个左手赋值

all

var var1 = 1,
    var2 = 1,
    var3 = 1;

这相当于:

var var1 = var2 = var3 = 1;

我相当确定这是定义变量的顺序:var3、var2、var1,这相当于:

var var3 = 1, var2 = var3, var1 = var2;

有没有办法在 JavaScript 中确认这一点?可能使用一些探查器?


阅读 117

收藏
2022-06-24

共1个答案

小编典典

实际上,

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));
2022-06-24