javascript - 使用 JavaScript 进行多个左手赋值

标签 javascript variables variable-assignment

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

这等价于:

var var1 = var2 = var3 = 1;

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

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

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

最佳答案

其实

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));

关于javascript - 使用 JavaScript 进行多个左手赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758576/

相关文章:

regex - 将捕获组分配给 XQuery 中的变量

Matlab:通过逻辑索引进行多重赋值

java - 一年中的编程作业月份

javascript - 如何获取选中项目的所有复选框值的总和

javascript - 如何向分配给变量 c 的对象字面量添加方法,以便满足类型检查?

javascript - 如何在 href 中填充变量

python - 如何在 Python 2.7 中使用临时变量 - 内存

javascript - 使用 karma 运行单元测试时出错

javascript - Vue.js : How to generare multiple dynamic ID's with a defined pattern

javascript - 将字符串和变量传递给函数