昨天我們學了變數宣告,知道怎麼用var、let和const來放資料,但變數裡能放的資料其實有很多種,這些不同的資料我們稱之為「資料型態」
不同的型態能做的事也不一樣,今天就來認識JavaScript 裡最基本的資料型態,還有怎麼在它們之間做轉換
JavaScript是「動態型別」的語言,意思是你宣告變數時不用先告訴它「這是字串」還是「這是數字」,它會根據你給的值自己判斷。這樣寫起來很方便,但有的時候也會出現一些很神奇的行為
常見的基本型態有這些:
看到這裡你可能會問,null和undefined有什麼差別嗎?都是沒有東西的意思啊?
雖然都是沒有東西,但null和undefined還是不一樣的喔!null的意思是你宣告變數之後刻意設定這個變數是空的,undefined則是你宣告了變數之後還沒有設定變數內存放的資料的意思,看看範例就知道囉
let name = '小明'; // String
let age = 20; // Number
let isStudent = true; // Boolean
let nothing; // undefined
let empty = null; // null
我們可以用 typeof
來檢查變數的型態:
console.log(typeof name); // "string"
console.log(typeof age); // "number"
console.log(typeof isStudent); // "boolean"
console.log(typeof nothing); // "undefined"
console.log(typeof empty); // "object"(JS 歷史 bug,但實際是 null)
有時候我們需要把一種型態轉換成另一種,或是JavaScript會在某些情況下「自己幫你轉」(隱式轉換),但也可以用函式自己轉換資料的型態(顯式轉換)
console.log('5' + 3); // "53"(字串 + 數字 = 字串)
console.log('5' - 3); // 2 (字串 - 數字 = 數字)
可以從範例看出來+
會是字串拼接,-
*
/
則會把自動把字串轉成數字來算,這就是型態轉換
至於手動轉換的部分
let str = '123';
let num = Number(str); // 轉成數字
console.log(num + 1); // 124
let n = 456;
let s = String(n); // 轉成字串
console.log(s + '元'); // "456元"
let truthy = Boolean(1); // true
let falsy = Boolean(0); // false
資料型態的介紹部分大概就到這裡了,至於還有部分沒有提到比較複雜的就放到另外一篇介紹囉!