Javascript奇怪变量var x=(x,y==“z”);
嗨,伙计们,我正在使用一个名为engage的评估引擎,下面是tut imJavascript奇怪变量var x=(x,y==“z”);,javascript,scope,var,Javascript,Scope,Var,嗨,伙计们,我正在使用一个名为engage的评估引擎,下面是tut im 然而,你可以看到上面有一条线,我不知道它应该做什么。最好提到win变量没有在代码的其他地方定义。这是Javascripts的作用 逗号运算符计算每个操作数(从左到右)并返回最后一个操作数的值 因此,win将通过feedback[i][“final”]==“win”的值,即true或false。例如: var win=(win,feedback[i]["final"] =="win"); statment的声明如下所示:
然而,你可以看到上面有一条线,我不知道它应该做什么。最好提到win变量没有在代码的其他地方定义。这是Javascripts的作用 逗号运算符计算每个操作数(从左到右)并返回最后一个操作数的值 因此,
win
将通过feedback[i][“final”]==“win”
的值,即true
或false
。例如:
var win=(win,feedback[i]["final"] =="win");
statment的声明如下所示:
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 x=(x,y==z)
相比,执行var x=(y==z)
没有真正的优势。执行第一个操作类似于执行以下操作:
var win = ( fedback[i]["final"] == "win" );
win
是用提升到作用域开头的var win
定义的。除此之外,win
将成为等式的结果。但是这个结构对我来说没有意义。我可能错了,但它似乎只是反馈[I][“final”]=“win”的结果。所以如果反馈[I][“final”]等于“win”,那么它就是真的吗?是的,它应该完全等于var win=(fedback[I][“final”]=“win”)代码>所以我不知道为什么它是这样写的,也许代码是自动生成的。@user3454070它准确地取决于最后一项,但根本没有真正的理由让获胜,
部分。或者是否有一种情况下,win,
的存在会起作用?@t.niese不,真的没有任何理由拥有它,除非它是在最后,并且win
是在其他地方定义的。否则,最好使用应用某些操作的语句,例如varx=(i++,i++,i)
var x;
x;
x = (y == z);