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是已經宣告但還沒有初始化的。