JS語法中的'=='和'==='和'!='和'!=='

來公司數月,今日得閒,突然想到面試時的一道面試題,其實也是面試經常會問到的:

“說一下兩個等號和三個等號的區別”

那我們先來試一下

這樣看來,字符串和字符串(相同數據類型下),'=='和'==='是沒有區別的;

那麼我們換一個寫法

字符串和數(不同數據類型下),就能看出'=='和'==='的區別,這就引申出一個問題,javascript數據類型的隱式轉換,數字和字符串相比,首先把數字轉爲字符串,再將兩個字符串進行比較

數組和字符串的比較,空數組被轉成空字符串,非空數組將內容轉換成字符串

布爾值和數組比較

記得js剛入門時,顯式數據類型的轉換已經蒙了,更別說是隱式轉換。

綜上所述,數據類型轉換順序

對象——字符串

數字——字符串

布爾——數字

'!='和'!=='也是一樣會進行隱式轉換

null和undefined比較呢?

null和undefined之間比較可以轉爲ture

但是和其他數據類型比較 都是false

[完]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章