1. 程式人生 > >【Javascript基礎篇】——基本資料型別的特殊型別null,undefined講解及typeof用法

【Javascript基礎篇】——基本資料型別的特殊型別null,undefined講解及typeof用法

【前言】

   在回顧javascript的時候總結了javascript的一些資料型別,它主要分為了兩種資料型別:基本型別和非基本型別(object型別);基本資料型別包括了:number,string,boolean,null,undefined。其中number型別主要擴充的是無窮大和無窮小infinity,以及在相關運算中產生的NaN.其中null,undefined,NaN是我們本節主要講解的內容

【內容】

NaN:保留字(表明資料型別不是數字) 

undefined:物件屬性或方法不存在,或聲明瞭變數但從未賦值。 

Null:對一個變數顯式地賦值為 null。 包含 null 的表示式之間的任何操作。

♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡

NaN:

不屬於資料型別,只是在相關的運算過程中出現異常導致的一種結果。

它不等於任何東西,包括它自己!

Null 資料型別 :
在 Jscript 中資料型別 null 只有一個值:null。關鍵字 null 不能用作函式或變數的名稱。 
包含 null 的變數包含“無值”或“無物件”。換句話說,該變數沒有儲存有效的數、字串、boolean、陣列或物件。可以通過給一個變數賦 null 值來清除變數的內容。

Undefined 資料型別: 

如下情況使返回 undefined 值: 物件屬性不存在, 聲明瞭變數但從未賦值。

null和undefined的用法上的區別:

①undefined是自動賦值的,而null必須是自定義的

var a;其中a是undefined,而不是null。必須是var a=null,a才是null。

②運算的結果是不一樣的。

undefined+1=NaN, Null+1=0

♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡♡

絕大部分的值在轉換為布林型別都為True但是一下六種falsy情況除外:

1.“”

2.null

3.undefined

4.0

5.NaN

6.false

其中有三種情況就是我們今天要著重提起的null,undefined,NaN;他們均屬於基本資料型別,但是null有一些特殊,typeof返回的是object的型別。

var result=‘’;

var a;

if(a){ result='yes'};

alert(result)

結果肯定可想而知,result=‘’;

那我們其實只是為了判斷a是否被定義和賦值,從上面產生FALSE的情況我們可以知道當var a=0, boolean a=false;,結果都是result=‘’,但是這個時候就和我們的想法不一致了,因為var a=0或者是boolean a=false,a都是被定義和賦值了的。

所以這個時候我們就需要優化我們的程式碼,用typeof返回結果是“undefined”來判斷。當開始我就寫了這樣的程式碼

var result=‘’

var a;

if(typeof a!=undefined){result=‘yes’}

alert(result);

當然看起來沒有問題,但是結果result卻是‘yes’,而不是‘’。這時候我們不得不瞭解:

typeof的返回型別:“string”,“undefined”,“number”,“object”,“function”,“boolean”。

而不是undefined。“undefined”!=undefined。所以正確的寫法應該是:

typeof a!=“undefined”,而不是typeof a!=undefined.

【總結】

     基礎知識對於我們走向一個新的高度很有幫助,所以我們需要鋪好腳下的路,踏踏實實的走!希望對大家掌握這方面的基礎知識有幫助,參考的部落格:點選開啟連結