我一直認爲JavaScript的if
語句爲他們的論點做了某種投射魔術,但我對幕後實際發生的事情有點警惕。JavaScript如何評估語句表達式?
我最近發現一個JavaScript comparison table,並注意到,即使-1 == true
評估爲false
,if(-1){...}
將執行。
因此,在JavaScript的if
語句中,表達式會發生什麼變化?假設它使用!!{expression}
將其轉換爲反布爾值,然後再次反轉它似乎是合理的,但是如果是這種情況,JS如何確定對象的反布爾表示是否真實?
我不明白 - '-1'是真的,所以它會執行。 (truthy!= true) –
「truthy」與某事物(布爾值)真值 –
(例如, 'var x = true;'既是真實的又是布爾型的'true'。但是'var x ='true';'是truthy而是'true'!= true',因爲''true''是一個字符串類型值,'true'是一個布爾類型值 –