JavaScript 資料型態 (Data Types)

資料型態說的是一個變數 (variable) 裡面儲存的是什麼類型的資料 (value)。

在 JavaScript 中,可以分為兩大類資料型態:

第一種是基本資料型態 (primitive data types),基本資料型態包含了:

  • 布林值 (Boolean): 只包含兩種值 true / false
  • null: null 是一個特殊值 (keyword),表示這變數裡面沒有東西
  • undefined: undefined 也是一個特殊值 (keyword),表示值還沒有定義或還未指定
  • 數值 (Number): 數值類型的值,像是 42 / 3.14159 / 0
  • 字串 (String): 像是 'hello world' / 汽車
  • Symbol

第二種是複合資料型態 (composite data types),包含了:

  • 陣列 (Array): 陣列用來儲存多個資料,陣列中的資料數量,就是這個陣列的長度 (length)
  • 物件 (Object): 基本上,基本資料型態以外的都是物件型態

為什麼要有資料型態?先來想想如果資料都沒有型態,下面這例子電腦就不會知道怎麼處理:

1 + 2
// 到底應該是看作數字相加等於 3?
// 還是字串相加等於 12?

有了資料型態,才能知道資料值屬於什麼類型,支援哪一些操作。

JavaScript 是動態型別的語言 (Dynamically Typed Language)

JavaScript 是動態型別的語言,你在宣告變數的時候,不用指定一個型別給這變數。

// 例如你不用像這樣,跟 JS 直譯器說 score 是一個數字
int score = 101;

JavaScript 直譯器 (Interpreter, 也就是瀏覽器) 會根據你給的值,自動給一個適當的型態。

// 所以只需要這樣直接宣告變數並給值
var score = 101;

動態型別的意思也是說,你可以隨時指定不同型態的值,給同樣一個變數:

var score = 101; // 數值型態
score = 'Mike 得到 101 分'; // 字串型態

typeof

typeof 運算字用來判斷一個運算元 (operand) 是什麼資料型態。

typeof operand

例如:

// 輸出 string
console.log(typeof 'hello');
// 輸出 number
console.log(typeof 123);
// 輸出 boolean
console.log(typeof true);