02.08 「前端架構師30天快速掌握js04」之簡單數據類型null和undefined

此篇文章講解目錄:

  1. null

  2. undefined

  3. null和undefined的關係

  4. null和undefined的區別

null(空值,曾經賦過值,但是目前沒有值)

  • 邏輯上null表示一個空對象的指針

  • 使用typeof檢測的時候會返回object;(object原型的終點也是null)

undefined(沒有值,指從沒有賦過值)

  • 使用var聲明變量但沒有初始化/賦值的

  • 區分空對象指針與尚未定義的變量

  • 對未初始化的變量以及未聲明的變量使用typeof運算符均會返回undefined;

注意:console.log(xxx) 和 var xxx;console.log(xxx);是不同的,前者是語法錯誤,後者才是undefined

「前端架構師30天快速掌握js04」之簡單數據類型null和undefined

null和undefined的關係

undefined派生自null;因為undefined派生子null;所以Null和undefined做比較的時候是true;但是null和undefined和別的人和類型比較都不想等;

  • undefined派生子null,因此在使用”==”進行比較的時候會返回true;

  • 沒有必要將變量顯示聲明undefined;

  • 聲明非空對象對應將其賦值為null;比如做定時器的時候用timer=null來重置變量;

「前端架構師30天快速掌握js04」之簡單數據類型null和undefined

null和undefined的區別

  • null和undefined都是表示沒有的,不存在的值;他們兩個在進行邏輯轉換時候都是false;這兩個值進行比較是true;

  • Null和undefined沒有toString方法;所以null和undefined和數據比較都是false;

  • 因為undefined派生自null,所以undefined和null做數據類型比較的時候的true;

  • null表示空引用,它是object類型,undefined表示未定義,它是undefined類型;

  • null是object類型,但不是object的實例;用instanceof為false;

  • 如果一個變量的值是null,那麼必須主動的給它賦值null;

  • 一個變量未定義,或者變量定義裡未賦值;則是undefined;

  • 需要注意的是,一個變量如果沒有定義,是不能直接在程序裡使用的(就是不能直接讀取,但可以賦值);比如說,本來沒有定義一個叫a的變量;但是我去aconsole.log(a);在瀏覽器裡這個語法會報錯的;但是可以用typeof去運算;但是如果a定義了,但沒有賦值;可以讀,它的值就是undefined;表示這個變量沒有被賦值;

  • 對於屬性來說,如果原來沒有這個屬性,根本就不存在這個屬性,那麼它的值就是undefined;

  • 對象的屬性不需要定義,如果不存在也可以直接去讀,不會報錯,而會給一個undefined的值;

  • 如果這個對象以後要用;但是現在還沒有值,一般情況下,會給他一個null的值;

  • 在函數(方法)裡,如果必須返回值;但是值又計算不出來,那就返回一個null;

  • 比如網頁中沒有ID是div1的元素,則下面的這句腳本返回null;

  • Document.getElementById(“div1”)//返回null;

  • 但是沒有返回值的函數,它的返回值都是undefined;

大家好接下來我們會邀請前端架構師以連載的方式,通過30天的實戰系統講解JavaScript的專業知識,歡迎大家關注頭條號“互聯網IT信息”。


分享到:


相關文章: