js——null和undefined的區別

** js基本數據類型有哪些?**
5種簡單數據類型:Null、Boolean、String、Number、Undefined
1種復雜數據類型:Object

  • undefined

    • 是var聲明的變量,但未進行初始化的默認值
var message;
alert(message);  //"undefined"
alert(age); //尚未定義的變量,會報錯,需要用typeof操作符進行判斷
  • 未聲明的變量typeof操作符返回的值
alert(age);   //產生錯誤
alert(typeof age); // "undefined"
  • null

    • 邏輯上來看,null值表示空對象指針,而這也正是typeof操作符檢測返回“object”的原因。
var car =null;
alert(typeof car); //"object"
  • 定義的變量,將來為了保存對象(即復雜的數據類型object),則初始化為null

  • 區別

實際上,undefined是null的派生,ECMA-262規定它們的相等性測試返回true

alert(undefined==null);//true

雖然有這樣的關系,但是用途卻不一樣。

  • undefined是變量未初始化未定義的默認值,typeof操作符檢測也為"undefined";
    但是,null表示變量被定義為“空值”,其typeof操作符檢測為"object"

  • 典型用法

    • null
  1. 作為函數的參數,表示該函數的參數不是對象。
  2. 作為對象原型鏈的終點。
  • undefined
  1. 聲明的變量,未初始化,變量的值為undefined
  2. 調用函數時,應該提供的參數沒有提供,該參數等于undefined。
  3. 對象的屬性沒有賦值,屬性的值為undefined
  4. 函數沒有返回值時,默認返回undefined

參考文章:undefined與null的區別

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第一章: JS簡介 從當初簡單的語言,變成了現在能夠處理復雜計算和交互,擁有閉包、匿名函數, 甚至元編程等...
    LaBaby_閱讀 1,703評論 0 6
  • Null類型 Null類型是第二個只有一個值的數據類型,這個特殊的值是null。從邏輯角度來看,null值表示一個...
    gtt21閱讀 429評論 0 1
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • Null類型 Null類型是第二個只有一個值的數據類型,這個特殊的值是null。從邏輯角度來看,null值表示一個...
    前端精髓閱讀 623評論 0 4
  • 我們必須全力以赴同時又不抱任何希望不管做什么事都把它當作全世界最重要的一件但同時又知道失敗無關緊要 ...
    MassieKiss閱讀 2,516評論 3 4