Javascript多变量赋值

时间:2014-02-20 22:42:18

标签: javascript variable-assignment simultaneous

这个问题已经有几个答案(某种程度上): Javascript:var = var = function 一行中的多个变量分配等等但是我想提出一个不同的问题。

因此,能够使用它非常方便:

var av = 0, bb;
var cvs = bb = av;
console.log(cvs,bb) // outputs 0 0

我的问题是,跨浏览器是怎么回事?我可以随处使用它,包括IE6或诸如此类的东西,或者我应该坚持:

var av = 0, bb;

bb = av; cvs = av;

如果你在代码中的任何一点改变一个变量,这是否意味着另一个变量也被改变了,或者在初始赋值之外是否没有连接?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以依赖此行为,它是ECMAScript标准的一部分。你可以在这里查看具体细节:
ECMAScript Language Specification (5.1) - Simple Assignment

答案 1 :(得分:0)

回答你的第二个问题:

  

如果你在代码中的任何一点改变一个变量,这是否意味着另一个变量也被改变了,或者在初始赋值之外是否没有连接?

这很容易测试:

var av = 0, bb;
var cvs = bb = av;
console.log(av, cvs, bb); // outputs 0 0 0

cvs = 1;
console.log(av, cvs, bb); // outputs 0 1 0

bb = 2;
console.log(av, cvs, bb); // outputs 0 1 2

av = 3;
console.log(av, cvs, bb); // outputs 3 1 2

因此在初始分配之外没有任何联系。