javascript 隱性類型轉換步驟

這裏說的隱性類型轉換,是==引發的轉換。javascript

  1. 若是存在NaN,一概返回false
  2. 再看有沒有布爾,有布爾就將布爾轉換爲數字
  3. 接着看有沒有字符串, 有三種狀況,對方是對象,對象使用toString進行轉換;對方是數字,字符串轉數字;對方是字符串,直接比較;其餘返回false
  4. 若是是數字,對方是對象,對象取valueOf進行比較, 其餘一概返回false
  5. null, undefined不會進行類型轉換, 但它們倆相等

這個順序必定要死記,這是面試時常常問到的。java

下面是一些雜題,本身作作面試


0 == undefined

1 == true


2 == {valueOf: function(){return 2}}


NaN == NaN

 8 == undefined

1 == undefined

 null == {toString: function(){return 2}}
 
 0 == null

 null == 1



 { toString:function(){ return 1 } , valueOf:function(){ return [] }} == 1
相關文章
相關標籤/搜索