> javascript 中返回 false?” />
嘿,javascript 粉絲!您是否曾經遇到過這樣的時刻:您的代碼做了一些奇怪的事情,而您卻摸不著頭腦?好吧,今天我給你準備了一份好東西。
看看這個:
console.log(1 2 > 1); // false
登錄后復制
等等,什么?第二個是假的?但是3大于2,2又大于1,對嗎?那么這里發生了什么?
讓我們來分解一下:
-
javascript 從左到右讀取這些比較。
對于 1
首先,它執行 1
然后它確實是
對于 3 > 2 > 1:
首先,它執行 3 > 2。確實如此。
然后它確實是 > 1.
現在,重點來了:當 javascript 將 true 與數字進行比較時,它會將 true 變成 1。
所以真正發生的是:
true
true > 1 變成 1 > 1,這是 false.
這就是為什么我們第一個為真而第二個為假。
瘋了,對吧?
那么,我們可以從中學到什么?當你進行多重比較時,最好是清楚的。您可以編寫 (3 > 2) && (2 > 1),而不是 3 > 2 > 1。雖然有點長,但至少達到了你的預期。