1. 程式人生 > >js null和undefined的區別

js null和undefined的區別

     null是javascript語言中的關鍵字,它表示一個特殊值,常用來描述“空”。對null進行typeof運算返回的是“object”,也就是說,可以將null認為是一個特殊的物件值,含義是“非物件”。但實際上,通常認為null是它自有型別的唯一一個成員。它可以表示為數字、字串、物件是“無值”的。

    undefined表示值的空缺。用未定義的值表示更深層次的“空值”。它是變數的一種取值,表明變數沒有初始化。注:1.查詢物件屬性或陣列元素的值時返回undefined,則說明這個屬性或元素不存在。2.函式沒有返回值,則返回undefined。3.引用沒有提供實際引數的函式形參的值也只會返回undefined。在ECMAScript 5該版本中是隻讀的。如果進行typeof運算得到undefined的型別,則返回“undefined”,表明這個值是這個型別的唯一成員。

    儘管null和undefined是不同的,但它們都表示:“值的空缺”。兩者往往可以相互轉換。判斷相等運算子“==”認為兩者是相等的(要使用嚴格相等運算子“===”來區分它們)。在希望值是布林型別的地方它們的值都是假值,和flase型別。null和undefined都不包括任何屬性和方法。實際上,使用“.”和“[]”來存取這兩個值都會錯誤。