js基本數據類型和typeof


JavaScript數據類型是非常簡潔的,它只定義了6中基本數據類型

  • null:空、無。表示不存在,當為對象的屬性賦值為null,表示刪除該屬性
  • undefined:未定義。當聲明變量卻沒有賦值時會顯示該值。可以為變量賦值為undefined
  • number:數值。最原始的數據類型,表達式計算的載體
  • string:字符串。最抽象的數據類型,信息傳播的載體
  • boolean:布爾值。最機械的數據類型,邏輯運算的載體
  • object:對象。面向對象的基礎
#當彈出一個變量時:

var aa;alert(aa);  //變量定義,彈出undefined

alert(aa);        //變量未定義,undefined , 未定義的變量也是undefined


#當判斷一個變量是否存在時:

var str;if( str == undefined )    //變量定義,可以這樣判斷

if( str == undefined )     //變量未定義,報錯ReferenceError: str is not defined

所以,當判斷一個變量是否不存在時,用 if( typeof str == undefined )

 

typeof:

 

alert(typeof 1);                // 返回字符串"number"  
alert(typeof "1");              // 返回字符串"string"  
alert(typeof true);             // 返回字符串"boolean"  
alert(typeof {});               // 返回字符串"object"  
alert(typeof []);               // 返回字符串"object "  
alert(typeof function(){});     // 返回字符串"function"  
alert(typeof null);             // 返回字符串"object"  
alert(typeof undefined);        // 返回字符串"undefined"

 

 

你會發現:JavaScript解釋器認為null是屬於object數據類型的一種特殊形式,而function(){}是function類型,也就是說函數也是一種基本數據類型,而不是對象的一種特殊形式。

實際上,在JavaScript中,函數是一個極容易引起誤解或引發歧義的數據類型,它可以是獨立的函數類型,又可以作為對象的方法,也可以被稱為類或構造器,還可以作為函數對象而存在等。

所以,在《JavaScript權威指南》中把function被看做是object基本數據類型的一種特殊對象,另外《悟透JavaScript》和《JavaScript高級程序設計》也把函數視為對象,而不是一種基本數據類型。但是在《JavaScript語言精髓與編程實踐》中卻把function視為一種基本數據類型,而把null視為object類型的一種特殊形式。至於誰對誰錯,看來只有根據具體情況而定了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM