Javascript多变量赋值

Javascript多变量赋值,javascript,variable-assignment,simultaneous,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; 如果你在代码的任何一点

这个问题已经有了一些答案: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;
如果你在代码的任何一点上改变一个变量,这是否意味着另一个变量也改变了,或者在初始赋值之外没有连接


谢谢

您可以依赖此行为,它是ECMAScript标准的一部分。您可以在此处查看详细信息:

要回答第二个问题:

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

这很容易测试:

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

因此,在初始分配之外没有连接。

它是JavaScript的一部分,因此它应该在实现JavaScription的浏览器中工作。这不是真的。在这种情况下,对象通过引用传递。