为什么下面的代码产生a == 3
?为什么这段代码在JavaScript中产生3?
var x = "abc";
var y = 3;
var z = "xyz";
var a = x && y || z;
http://jsfiddle.net/thinkingmedia/qBZAL/
我本来期望这导致a == true
。
为什么逻辑运算符评估为为true
,但不评估3
为true
。结果产生了3
。
此外,如果你改变y = 0
然后a == "xyz"
这意味着&&
处理0
为false
。将数字视为数字会发生什么?
这里的逻辑运算符是怎么回事?
任何人对此问题有更好的标题? – cgTag
你为什么不在堆栈溢出问? http://meta.stackexchange.com/a/129632/165773 – gnat
@gnat好像是一个普通的编程问题。 – cgTag