學習 JavaScript 等號運算子的基礎知識

這些運算子接受兩個值並返回布林值:

  • == 檢查是否相等
  • != 檢查是否不相等
  • === 檢查是否嚴格相等
  • !== 檢查是否嚴格不相等

現在來談談我們所謂的“嚴格”。在非嚴格檢查中,第二個運算元在進行比較之前會被轉換為第一個運算元的類型。嚴格模式則會阻止這種轉換。

舉例如下:

const a = true

a == true // true
a === true // true

1 == 1 // true
1 == '1' // true
1 === 1 // true
1 === '1' // false

無法檢查對象的相等性:兩個對象永遠不相等。唯一可能為真的情況是兩個變量引用了同一個對象。

還有一些需要注意的特殊情況:NaN 始終與 NaN 不相等。

NaN == NaN // false

在非嚴格模式下,nullundefined 的值是相等的:

null == undefined // true
null === undefined // false