Javascript奇怪的变量var x =(x,y ==“z”);

时间:2015-12-17 22:27:37

标签: javascript scope var

var win=(win,feedback[i]["final"] =="win");

嗨,大家好我正在使用一个名为“引用”的评估引擎,我跟随http://146.191.107.189/documentation/tutorial

然而,你可以在上面看到一条线,我不知道它应该做什么。最好提一下,win变量没有在代码中的任何其他位置定义。

1 个答案:

答案 0 :(得分:1)

这是Javascripts comma operator的效果。

  

逗号运算符计算每个操作数(从左到右)并返回最后一个操作数的值。

所以win的值为feedback[i]["final"] == "win",为truefalse。例如:

var x = (1,2,3); // x => 3

此处的陈述声明正在发生的事情:

var win = (                          // declared a variable named 'win'
    win,                             // the value of win is undefined (as it's declared by var)
    feedback[i]["final"] =="win"     // return this value, assign it to 'win'
);

在功能上它与以下内容完全相同:

var win = ( fedback[i]["final"] == "win" );

在这种情况下,就var x = (x, y == z)功能而言,与var x = (y == z)相比,没有真正的优势。做第一个操作就像做:

var x;
x;                          
x = (y == z);