爲什麼下面的代碼產生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