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