结果如下:var myvar1 = myvar2 = myvar3?

我在一些nodejs脚本中看到了像这样使用变量/对象:

var myvar1 = myvar2 = myvar3;

为什么使用它,这是什么意思?


这将myvar2设置为myvar3 ,并将myvar1设置为myvar2

我认为myvar3myvar2已经在这行之前声明过了。 如果没有, myvar2将是一个全局的(因为没有var ),如果myvar3没有定义,这会给出一个错误。

这扩展到:

myvar2 = myvar3; // Notice there's no "var" here
var myvar1 = myvar2;

它将评估为:

var myvar1 = myvar2 = myvar3;
var myvar1 = myvar3;          // 'myvar2' has been set to 'myvar3' by now
myvar3;                       // 'myvar1' has been set to 'myvar3' by now

它首先将myvar3分配给myvar2 (没有var ,所以可能是隐式的global,请注意这一点)。

然后它会将myvar3的值分配给myvar1 ,因为返回设定值。

结果再次返回,这不会再做任何事 - 在最后一行中, myvar3的值没有任何myvar3

所以最终它们具有相同的价值。


如果:

var myvar3 = 5;

var myvar1 = myvar2 = myvar3;

然后他们都是= 5

链接地址: http://www.djcxy.com/p/69983.html

上一篇: What is the outcome of: var myvar1 = myvar2 = myvar3?

下一篇: In JavaScript, is chained assignment okay?