關於if的判斷
在js中,if的判斷是遵循一定原則的,括號內的表達式會被強制轉化為布爾類型,輸出為True或者False。對於不同中類型的表達式JS有不同的輸出。
對於類型為Undefined和Null表達式,輸出結果為false
對於類型為Object的表達式,直接輸出結果為True
對於類型為Boolean的表達式,直接判斷結果為True 或者False
對於類型為Number訂單表達式,除非是+0,-0或者是NAN結果為False,其余Number輸出結果都是True
對於類型為String的表達式,除了空字符結果為False,其余輸出都是True
關於==的判斷
相比if的判斷,在js中關於==的判斷就相對復雜
例如==的左右分別為X和Y,有如下規則:
若X是null,Y是undefined,則輸出結果為True
若x是number,Y是string ,則將字符串轉換為數字再進行判斷,
若x是boolean,Y是其他類型,則先將Boolean轉換為數字再進行判斷
若x是Object,Y是Number或者String,則先將對象轉化為字符串或數字,再進行判斷
除了上述幾種類型,其余的輸出結果都是False