使用 JavaScript 进行多项左手赋值 [英] Multiple left-hand assignment with JavaScript

查看:29
本文介绍了使用 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!

实际上这表明赋值是右结合的.bad 示例相当于:

Actually this shows that assignment are right associative. The bad example is equivalent to:

var var1 = (window.var2 = (window.var3 = 1));

这篇关于使用 JavaScript 进行多项左手赋值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆