1. 程式人生 > 其它 >js中unll與undefined的關係

js中unll與undefined的關係

1.相同點

1)Undefined型別派生自null型別,所以在非嚴格模式的情況下,兩者是對等的

undefined==null //true

2)undefined和null在轉換為boolean型別的值時,都會轉換為fales

3)將兩者轉換為物件時都會丟擲一個TypeError的異常,也就是平時最常見的引用異常

2.不同點

1)null是JavaScript中的關鍵字,而undefined是JavaScript中的一個全域性變數,即掛載在window物件上的一個變數,並不是關鍵字

2)使用typeof 檢測兩種資料型別的時候 undefined會返回undefined 而null則會返回物件

3)在通過call呼叫toString()方法的時候undefined型別的值會返回 "[object Undefined]" 而Null型別的物件會返回"[object Null]"

Object.prototype.toString.call(undefined)//[object Undefined]
Object.prototype.toString.call(null)//[object Null]

4)在進行字串型別轉換的時候 都是會轉換成他們本身的字串變數

undefined + 'string' //undefined string
null + 'string' //null string

5)在進行數值型別轉換的時候

undefined = NaN   不可以進行數值運算
null = 0   可以進行數值運算