1. 程式人生 > >JavaScript資料型別和變數

JavaScript資料型別和變數

       JavaScript中的變數是已命名的資料,是一種為資料建立引用的方式,無論資料是字串、數字、布林值、陣列或者其他物件,都可以通過變數名多次訪問該資料。更重要的是,變數可以用於不同的過程中儲存資料。

1.三種基本的資料型別(字串、數字以及布林型)

     每種資料型別互不相同,他們分別對應於字串值、數字值以及布林值。然而JavaScript還提供了一些內建的物件,String、Number和Boolean是擁有內建屬性和方法的物件。當你以物件的方式去操作基本資料型別,它們也都會封裝自己的基本資料型別,比如你建立了簡單的字串變數並使用String物件的方法時,JavaScript會隱式地通過String物件封裝字串基本資料型別,並且呼叫String物件的方法和屬性。如下:

    var  firstName = "Maple";

     var upperFirstName = firstName.toUpperCase();

需要注意的是,最後會銷燬臨時物件,所以如果需要以物件的方式操作字串,最好的方式就是建立一個物件。

    下來我們分別去了解下它們。

1.1. String 資料型別

     由於JavaScript是一門支援鬆散型別的程式語言,當你把字串賦值給一個變數時,此時這個變數的型別就是字串。

這邊我主要講下字串的轉換

1.1. 1. 隱式轉換:

數字、布林值等其他資料型別都可以轉換成字串,一般來說,指令碼引擎將根據上下文自動完成轉換,數字與字串之間的連線也自動完成轉換的,如下:

  var num_value = 2;

  var string_value1 = " This is a Number "  + num_value   ;    //結果是This is a Number2

  var string_value2 = " This is a Number "  + num_value  + num_value  ;   //結果是This is a Number22

  var string_value3 = +num_value  + num_value + " This is a Number "   ;   //結果是 4This is a Number

上面有三種情況不同的結果,字串與數字相互連線的時候是按順序兩兩之間操作,如果兩兩之中不同時為數字型別,結果值均為字串型別。詳情下圖:

然後使用其他操作符號,將會把字串轉為數字:

 var fristResult = "20" - 2 ; // 結果為18       var secondResult = "20" / 2 ; // 結果為10   var secondResult = "20" * 2 ; // 結果為40

1.1.2.顯式轉換

  轉換的方式為 :  var  num_value = 2;   var string_value = (String)num_value ;  

String 轉換關係:

  undefined : "undefined "      null : "null"    布林值 : "true"或"false"   數字 :數字相應的字串,NaN表示非數字值

  字串:不轉換   物件:物件預設的字串

1.2.Boolean 資料型別

  布林值可以顯式地賦給不同型別的變數,這取決於該變數是否已經賦值,以及該變數的當前值。如下:

var num_value = 0;

var boolean_value = Boolean(num_value);     //結果為false

故:Boolean資料型別顯式轉換的對應關係為:Undefined/Null/0/NaN/空字串/false  -->false    true/其他數字/物件 --> true

1.3.Number 資料型別

主要來討論下parseFloat和parseInt 兩個將字串轉換數字方法。

var string_value = "1.23e-2";

parseFloat(string_value); //結果為 0.0123    parseInt(string_value); //結果為 1    

parseFloat("1.25 maple");  //結果為1.25       parseFloat("1.25");  //結果為1

其他資料型別與Number轉換的對應關係 :  undefined - NaN  null-0(IE中返回NaN)  true/false-1/0 字串-整數或者浮點數 物件-NaN

1.4.null和undefined變數

null是已定義的、值為null的變數。   undefined是已經宣告但還沒有初始化的。