來公司數月,今日得閒,突然想到面試時的一道面試題,其實也是面試經常會問到的:
“說一下兩個等號和三個等號的區別”
那我們先來試一下
這樣看來,字符串和字符串(相同數據類型下),'=='和'==='是沒有區別的;
那麼我們換一個寫法
字符串和數(不同數據類型下),就能看出'=='和'==='的區別,這就引申出一個問題,javascript數據類型的隱式轉換,數字和字符串相比,首先把數字轉爲字符串,再將兩個字符串進行比較
數組和字符串的比較,空數組被轉成空字符串,非空數組將內容轉換成字符串
布爾值和數組比較
記得js剛入門時,顯式數據類型的轉換已經蒙了,更別說是隱式轉換。
綜上所述,數據類型轉換順序
對象——字符串
數字——字符串
布爾——數字
'!='和'!=='也是一樣會進行隱式轉換
null和undefined比較呢?
null和undefined之間比較可以轉爲ture
但是和其他數據類型比較 都是false
[完]