JavaScript中的“==”和“===”等操作符有何不同?

在JavaScript中,我們可以使用兩種不同的操作符來檢查對象的相等性,它們分別是“==”和“===”。 這兩者基本上做的是相同的事情,但它們之間有一個很大的不同之處。 “===”用於檢查兩個值是否相等。如果它們是對象,則這兩個對象必須是相同的類型。正如大家所知,JavaScript是動態類型語言,但是你需要了解一些基本的類型。 具體而言,我們有“值類型”(布爾型、null、undefined、字符串和數字)和“引用類型”(數組、對象、函數)。 如果兩個值的類型不同,則“===”將返回false。 如果它們是相同的類型,JavaScript將進一步檢查它們是否相等。 對於引用類型來說,這意味著這兩個值必須引用相同的對象/數組/函數,而不僅僅是具有相同的值。 而“==”則不同,它會嘗試將類型轉換為相匹配的類型。 這就是為什麼你會得到以下結果: false == '0' // true false === '0' // false null == undefined // true null === undefined // false 根據我的經驗,在97%的情況下,你會希望使用“===”,除非“==”與你想要的完全相同。它的缺陷和邊界情況較少。 同樣,對於“!=”和“!==”,它們執行的是相同的操作,只是取反的結果。 總是使用“!==”作為默認選擇。

JavaScript類型轉換(型別轉換)

了解 JavaScript 類型轉換的基礎知識 即使 JavaScript 是一種弱類型語言,您可能需要將值從一種類型轉換為另一種類型。 在 JavaScript 中,我們有以下原始類型: Number String Boolean Symbol 以及對象類型: Object (還有 null 和 undefined,但從它們轉換到其他類型沒有意義) 例如,您可能想要進行以下轉換: 將數字轉換為字符串 將字符串轉換為數字 將字符串轉換為布爾值 將布爾值轉換為字符串 等等。 以下是您可以使用的技巧將一種類型轉換為另一種類型。我將涵蓋最常見的情況。 轉換為字符串 通常,從任何值轉換為字符串通常只需在任何值上調用 toString() 方法,JavaScript 將創建與該類型對應的字符串值。或者,您可以將任何值傳遞給 String() 全局函數。 從數字轉換為字符串 使用 String 全局函數,或者使用數字類型的 toString() 方法: String(10) //"10" (10).toString() //"10" 從布爾值轉換為字符串 使用 String 全局函數或布爾類型的 toString() 方法: String(true) //"true" true.toString() //"true" String(false) //"false" false.toString() //"false" 從日期轉換為字符串 使用 String 全局函數或日期類型的 toString() 方法: String(new Date('2019-01-22')) //"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)" (new Date('2019-01-22'))....