JS中null與undefined的區別

 

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原型鏈

相關文章
相關標籤/搜索