一尘不染

使用JavaScript进行多个左侧分配

javascript

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

这等效于:

var var1 = var2 = var3 = 1;

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

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

有什么方法可以用JavaScript确认吗?可能使用一些分析器?


阅读 296

收藏
2020-05-01

共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));
2020-05-01