JS在if中的強制型別轉換

2021-09-11 15:27:43 字數 980 閱讀 8944

1.使用非嚴格相等進行比較,對==左邊的值進行型別轉換

2.在if判斷時,括號內的值進行型別轉換,轉化為布林值

今天,我就來聊一聊js在if中的強制型別轉換。

其實,如果詳細要討論哪些值在if中強制轉換為true,哪些值在if中強制轉換為false,這很困難,因為,情況太多了。但是,我們可以輕鬆記住強制型別轉換結果,為什麼?因為,大多數情況下,都是轉換為true,只有四種情況會轉換為false。此時,我們只需要記住轉換為false的那四種情況就可以了。

強制轉換為false的四種情況

在if中進行強制轉換為false的情況只有四種,分別是:

1.數字0

2.nan

3.空字串

4.null或undefined

很多人會問,為什麼null和undefined會在一起?因為,在非嚴格相等的情況下,null和undefined是相等的。

null == undefined // true

// 兩種寫法相等

a == null

a === null || a === undefined

複製**

如何判斷引用陣列和物件是否為空

很多時候,我們會碰上這種情況,即在if中判斷陣列或物件是否為空。如果直接判斷的話,依據之前的理論,不管是不是空陣列或物件最後都是true,因為陣列或物件會強制轉換為true。

判斷陣列是否為空很簡單,只需要訪問它的length屬性即可。那物件該怎麼辦?

這裡可以使用object.keys方法對物件屬性進行遍歷,該方法返回乙個包含物件屬性的陣列,如果陣列長度為0,即代表為空。當然,這種情況並不完全嚴謹,因為,物件可能存在不可列舉屬性。

var arr = 

arr.length = 0

var obj = {}

object.keys(obj).length = 0複製**

js中的強制型別轉換

今天沒轉過彎,寫出了下面一段錯誤 強制型別轉換問題 錯誤 if b.indexof detail 本意是覺得indexof方法返回的是 1或者大於等於0的數字,利用if條件判斷,當其中的值為負數時,預設布林值為false,不執行getrportbyid函式,完成要求。在除錯時發現該函式返回值為 1時...

JS 型別轉換 強制型別轉換

js 型別轉換 強制型別轉換 一 parseint 將其他型別轉換成number型別的整數 注意 string number 1 字串中值的首字元必須是數字,轉換後才能得到具體的值 否則得到nan 2 只轉換從首字元開始的連續數字 如 2b345 轉換後只得到2 3 除了string,其他型別轉換後...

js強制型別轉換

值型別轉換 包括兩種 顯式轉換和隱式轉換。將值從一種型別轉換為另外一種型別稱為型別轉換,也叫做顯式型別轉換,隱式的情況也叫做強制型別轉換。在js中兩種轉換被統稱為強制型別轉換。其實,對於顯式和隱式沒有很明確的界定,如果你不知道某種情況是一種顯式型別轉換,那麼它對於你來講就是隱式的。抽象值操作 顯示強...