JavaScript 資料型別

admin發表於2018-07-30

一.JavaScript中有兩大類資料型別:

(1).值型別:

String、Number、Boolean、Symbol(ES2015新增)、null和undefined。

boolean,number,string三種值型別,JavaScript為之提供了對應包裝型別,包裝型別和引用型別的差別在於物件的生存週期,在讀取模式下訪問值型別資料的值時,內部會自動為之建立包裝型別的物件,提供了相關方法和屬性,但是操作值型別資料的語句一經執行完畢,就會立即銷燬新建立的包裝型別。

(2).引用型別:

引用型別都是Object或者其子類(ES2015新增類的概念),比如Date,Array,Math和RegExp等。

二.詳細介紹:

(1).String型別:

字串型別可以使用單引號或者雙引號包裹形成。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var webName = "螞蟻部落";
var url = 'softwhy.com';

(2).Number型別:

此型別表示整型和浮點型數字,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var num1=88.00;      // 使用小數點來寫
var num2=88;         // 不使用小數點來寫

極大或極小的數字可以通過科學(指數)計數法來書寫:

[JavaScript] 純文字檢視 複製程式碼
var y=123e5;      // 12300000
var z=123e-5;     // 0.00123

還有一種比較特殊的NaN(not a number),它表示一個本來要返回數值的運算元而未返回的情況。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(8%0);

NaN的特點:

(1).任何NaN參與的操作返回值都是NaN。

(2).任何值和NaN都不相等,甚至和其本身都不相等。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(NaN==NaN);

isNaN()方法可以判斷一個值是否是數值型別,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(isNaN("antzone"));
console.log(isNaN(3));

(3).Boolean型別:

該型別只有兩個值,false和true。

JavaScript中所有型別的值都可以轉換為布林值,如果將一個值轉換為布林值,可以使用顯式方式:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var str="antzone";
console.log(Boolean(str));

也有隱式轉換,例如在if語句中:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var str="antzone";
if(str){
  console.log("螞蟻部落");
}

具體一個值被轉換為true還是false那要看值得資料型別和其實際值,轉換規則如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/06/014107cl5jes7zqsjatz33.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

(4).undefined型別:

此型別只有一個值,即undefined。

一個變數宣告但未賦值的時候,它的預設值就是undefined。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var antzone;
console.log(antzone);

(5).Null型別:

此型別和undefined型別一樣也只有一個值,即null。

null表示一個空物件,雖然它是Null型別,但是typeof返回值卻是object,但是並不說明它是一個物件,可以說這是javascript的一個小小的錯誤,或許以後就會被修復。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(typeof null);

如果我們宣告一個變數用來儲存物件,那麼可以將此變數設定預設值為null,這樣就可以判斷此變數是否等於null,以此來判斷此變數是否指向一個物件。

null和undefined相等性比較返回值為true。

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(null==undefined);

儘管undefined和null都表示空,但是它們的用法確實有很大不同的,undefined一般表示一個宣告未賦值、未宣告或者屬性不存在,而null一般針對物件,表示一個物件不存在。變數宣告未賦值的時候沒有必要顯式賦值為undefined,但是如果一個變數是要準備儲存物件的,那麼就推薦賦值為null。

(6).Object型別:

關於Object型別和繼承於它的子類這裡不具體介紹了,後續文章會有詳細介紹。

下面只簡單介紹一下如何建立一個Object型別的物件:

[JavaScript] 純文字檢視 複製程式碼
var obj=new Object();

上面是用構造方法建立一個Object型別物件。

[JavaScript] 純文字檢視 複製程式碼
var obj = {}

上面是用直接量方式建立一個物件。

[JavaScript] 純文字檢視 複製程式碼
var obj = {
  webName: "螞蟻部落",
  address:"青島市南區"
}

Object物件是無序鍵值對集合。陣列也是鍵值對集合,不過是有序鍵值對集合。

相關文章