天天看點

JavaScript資料類型1、Undefined類型2、NULL類型3、Boolean類型6、Object類型 

前言:

    ECMAScipt中的變量又是松散類型的,所謂松散類型就是可以用來儲存任何類型的資料。是以javascript中用var關鍵字來定義變量,是以無法确定變量一定會存儲什麼值,也就不知道變量到底會是什麼類型,因為可以随時改變變量的類型。今天這篇文章就和大家一起來學習javascript中的類型,雖然很簡單,但是我感覺資料類型是學習某種語言的前提,是以必須掌握它。

      下面來看看到底有哪些資料類型呢?

JavaScript資料類型1、Undefined類型2、NULL類型3、Boolean類型6、Object類型 

 再說資料類型之前我們必須應該了解typeof操作符:

       typeof操作符是用來檢測變量的資料類型。對于值或變量使用typeof操作如會傳回如下的字元串

JavaScript資料類型1、Undefined類型2、NULL類型3、Boolean類型6、Object類型 

typeof操作符可以操作變量,也可以操作字面量。

1、Undefined類型

Undefined類型隻有一個值,即特殊的Undefined。在使用var聲明變量,但沒有對其初始化時,這個變量的值就是Undefined。

<span style="font-family:KaiTi_GB2312;font-size:18px;">var box;  
var box1 = undefined;  
  
//申明的時候沒有指派,那麼解析器會自動給其指派為undefined,是以輸出為true  
alert(box == undefined)//true  
alert(box1 == undefined)//true  
//根據上面所說的typeof傳回的是字元串"undefined"是以輸出為true  
alert(typeof box == "undefined")//true  </span>
           

注意:我們在定義變量的時候,盡可能的不要隻聲明,不指派。

2、NULL類型

 Null也是一個隻有一個值得資料類型,它的值就是null,任何變量隻要給其指派為null的話這個變量的資料類型就是Null類型。null值表示控對象指針,是以申明的變量要是想用來儲存對象并且在申明之初還不能确定具體儲存哪個對象的時候就将其指派為null,在使用的時候隻要檢查該變量是否為null就可以知道該變量是否儲存了對象。

<span style="font-family:KaiTi_GB2312;font-size:18px;">var box=null;
alert(typeof box);   //object
// typeof 操作符檢測null會傳回object

var box=null;
if(box!=null)
{
	alert('box對象已存在');    
}
//如果定義的變量準備在将來儲存對象,那麼最好将該變量初始化為null
//當檢查null值就知道是否已經配置設定了對象引用了。

alert(undefined==null);  //true
//undefined是派生自null的,是以傳回true</span>
           

3、Boolean類型

在javascript中Boolean類型用還是比較多的一種簡單資料類型,它有兩個值,分别是true和false,因為在javascript中字母是區分大小寫的,是以True和False不是Boolean的值。

可以通過如下方式給Boolean類型的變量指派:

<span style="font-family:KaiTi_GB2312;font-size:18px;">var test = true;  
  
var test1 = false; </span>
           

 調用Boolean()方法可以将任何類型的值轉化成與之相對應的Boolean類型的值,也就是可以将其轉化成true或者false。

例如:

<span style="font-family:KaiTi_GB2312;font-size:18px;">//将非空字元串轉化成true  
alert(Boolean("a"))//true  
//将空字元串轉化成false  
alert(Boolean(""))//false  
//将對象轉化成true  
alert(Boolean({a:"a"}))//true  </span>
           

将各種類型的值轉化成Boolean類型的規則如下:

JavaScript資料類型1、Undefined類型2、NULL類型3、Boolean類型6、Object類型 

4、Number類型

  javascript為了支援各種數值類型,定義了不同數值字面量格式

<span style="font-family:KaiTi_GB2312;font-size:18px;">var box=100;    //十進制整數

var box=12.0;   //小數點後面是0,轉成12
//由于浮點數值需要的記憶體空間比整形數值大兩倍,是以進行轉換

var box=0/0;                   //NaN
var box=12/0;                 //Infinity
var box=12/0*0               //NaN
//NaN 即非數值(Not a Number)是一個特殊的值
alert(NaN+1);                   //NaN
alert(NaN=NaN);              //false
//任何與NaN進行運算的結果均為NaN
alert(isNaN(NaN));             //true
//ECMAScript提供了isNaN()函數,用來判斷這個值到底是不是NaN
alert(parseInt('456Lee'))   //456 傳回整數部分,在js程式中經常用這個函數把字元轉換成數字</span>
           

5、String 類型

JavaScript中的字元串String一個特殊的基本資料類型,在很多語言中,String是以對象的形式表示的,但在JavaScript裡,String是當作一種基本資料類型,是通值傳遞的方式來操作。但它是一個比較特殊的基本類型。

<span style="font-family:KaiTi_GB2312;font-size:18px;">var strA = "這是字元串";
 var strB = strA;
 strA = "這是另外一個字元串";
 alert("strB="+strB);     //strB=這是字元串</span>
           

從運作結果可以看到,仿佛strA通過值傳遞的方式複制了一份給了strB。當strA改變的時候,strB并沒有改變,似乎我們已經可以下結論,String就是個基本資料類型。

<span style="font-family:KaiTi_GB2312;font-size:18px;">  var a = "myobject";
 a.name = "myname";//為字元串a動态添加name屬性
 alert("a.name="+a.name); //通路a的name屬性,結果顯示:a.name=undefined</span>
           

運作結果顯示,String無法當作一個對象來處理。這也證明了一點:基本類型雖然也可以添加屬性,也不會報錯,經測試添加完之後卻是無法通路的,實際上,javascript裡的String是不可以改變的,javascript也沒有提供任何一個改變字元串的方法和文法。

String類型包含了一些特殊的字元字面量

JavaScript資料類型1、Undefined類型2、NULL類型3、Boolean類型6、Object類型 

6、Object類型 

對象其實就是一組資料和功能的集合。對象可以通過執行new操作符後跟要建立的對象類型的名稱來建立。而建立Object類型的執行個體并為其添加屬性和(或)方法,就可以建立自定義對象。

<span style="font-family:KaiTi_GB2312;font-size:18px;">var o = new Object();</span>
           

Object的每個執行個體都具有下列屬性和方法:

  ● constructor——儲存着用于建立目前對象的函數

  ● hasOwnProperty(propertyName)——用于檢查給定的屬性在目前對象執行個體中(而不是在執行個體的原型中)是否存在。其中,作為參數的屬性名(propertyName)必須以字元串形式指定(例如:o.hasOwnProperty("name"))

  ● isPrototypeOf(object)——用于檢查傳入的對象是否是另一個對象的原型

  ● propertyIsEnumerable(propertyName)——用于檢查給定的屬性是否能夠使用for-in語句來枚舉

  ● toString()——傳回對象的字元串表示

  ● valueOf()——傳回對象的字元串、數值或布爾值表示。通常與toString()方法的傳回值相同

小結:

     Undefined、Null、Boolean、Number、String是javascript中的基本資料類型,而Object屬于引用類型。用typeof檢測其他類型會傳回相應的字元串,但是檢測null或對象時,會傳回”object",Boolean、Number、String 這三個是Javascript中的基本包裝類型,也就是這三個其實是一個構造函數,他們是Function的執行個體,是引用類型。JavaScript是最麻煩的一種語言,沒有之一,所有要想熟悉,還得多加練習啊。

繼續閱讀