1. 相同點
if 判斷語句中,二者都會被轉換爲falsehtml
2. 不一樣點
-
Number轉換的值不一樣,Number(null)輸出爲0, Number(undefined)輸出爲NaN函數
- null表示一個值被定義了,可是這個值是空值
-
做爲函數的參數,表示函數的參數不是對象post
-
做爲對象原型鏈的終點 (Object.getPrototypeOf(Object.prototype))spa
- 定義一個值爲null是合理的,但定義爲undefined不合理(var name = null)
-
- undefined表示缺乏值,即此處應該有值,可是尚未定義
-
變量被聲明瞭尚未賦值,就爲undefinedprototype
-
調用函數時應該提供的參數尚未提供,該參數就等於undefinedcode
-
對象沒有賦值的屬性,該屬性的值就等於undefinedhtm
-
函數沒有返回值,默認返回undefined對象
-
-
示例 blog
var i; i // undefined function f(x){console.log(x)} f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefined
詳情參考:http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html原型鏈