一、undefined、null、""、0、false這五個值在if語句中作判斷,都會執行false分支測試
二、 undefined和null比較特殊,
雖然null的類型是object,可是null不具備任何對象的特性,
就是說咱們並不能執行null.toString()、null.constructor等對象實例的默認調用。
因此從這個意義上來講,null和undefined有最大的類似性。
★★看看null == undefined的結果(true)也就更加能說明這點。
不過類似歸類似,仍是有區別的,
就是和數字運算時,10 + null結果爲:10;10 + undefined結果爲:NaN。
3.""、0和false雖然在if語句表現爲"假值",可它們都是有意義數據,只是被做爲了"空值"或"假值"spa
4.當嘗試讀取不存在的對象屬性時也會返回 undefined。
提示:只能用 === 運算來測試某個值是不是未定義的,由於 == 運算符認爲 undefined 值等價於 null。
註釋:null 表示無值,而 undefined 表示一個未聲明的變量,或已聲明但沒有賦值的變量,或一個並不存在的對象屬性。對象
null == undefined
可是:
null !== undefined
那麼這二者到底有啥區別呢?
null
這是一個對象,可是爲空。由於是對象,因此 typeof null 返回 'object' 。
null 是 JavaScript 保留關鍵字。
null 參與數值運算時其值會自動轉換爲 0 ,所以,下列表達式計算後會獲得正確的數值:
表達式:123 + null結果值:123
表達式:123 * null結果值:0 ip