JavaScript作為一門編程語言,有著很多細(xì)節(jié)需要注意,這篇文章就來講一下JavaScript中的三個等號。
首先,我們需要知道什么是三個等號。在JavaScript中,一個等于號"="是用來賦值的,而兩個等于號"=="則是用來進(jìn)行值的比較的。而三個等號"==="則要求類型和值均相等才會返回true,否則返回false。
可以通過下面的代碼來說明三個等號:
console.log(1 === 1); //true console.log(1 === "1"); //false console.log(true === 1); //false console.log(null === undefined); //false console.log(NaN === NaN); //false console.log({} === {}); //false
在第一行中,1等于1,類型和值都相等,所以返回true。而在第二行中,1和字符串"1"進(jìn)行比較,雖然它們的值都是1,但是類型不同,所以返回false。在第三行中,布爾類型的true和數(shù)字類型的1進(jìn)行比較,雖然它們的值也都是1,但是類型不同,所以返回false。在第四行中,null和undefined雖然都表示空,但是它們的類型不同,所以返回false。在第五行中,雖然NaN表示的是"不是一個數(shù)字",但是它本身也是一個數(shù)字類型的值,并且和任何值都不相等,所以兩個NaN之間進(jìn)行比較返回false。在最后一行中,兩個空對象雖然看上去相同,但是它們在內(nèi)存中的地址不同,所以返回false。
了解了三個等號的特性,我們就可以用它來進(jìn)行一些判斷了。比如判斷一個變量是否為null或undefined:
let x; //聲明x但未賦值 if(x === null || x === undefined){ console.log("x is null or undefined"); }else{ console.log("x is not null or undefined"); }
還可以用三個等號來判斷NaN:
let x = "hello"; if(x !== x){ console.log("x is NaN"); }else{ console.log("x is not NaN"); }
綜上所述,JavaScript中的三個等號用于判斷類型和值是否完全相等。在進(jìn)行比較的時候,一定要注意值的類型,否則會出現(xiàn)意想不到的錯誤。