此篇將簡述 JavaScript 中變數的「值」,這些值的類型取決於它們所包含的資料類型。我們將討論原始型別,以及什麼是強型別和弱型別。
在JavaSript中數值可分為兩大類(陣營),原始型別(Primitive type)以及物件型別(Object type)
原始型別主要有以下七種:
const number = 3.14; //值型態為數字3.14
const firstName = "Jeremy";
const lastName = 'Hung';
const greeting = "Hi i'm Jeremy." //內容有單引號時,可選擇用雙引號包住字串內容
const greeting1 = 'Hi i\'m Jeremy.' //若必須使用單引號包住時,可使用\(跳脫字元)來處理
const firstName = "Jeremy";
const lastName = "Hung";
console.log(`Hi i'm ${firstName} ${lastName}`)
const boolean = true;
const undefinedValue; //宣告變數,但是未賦予值
const nullValue = null;
const bigIntValue = 1234567890123456789012345678901234567890n;
const anotherLargeNumber = BigInt("900719925474099121");
const uniqueSymbol = Symbol("description");
const anotherSymbol = Symbol("description");
// 使用『 === 』判斷uniqueSymbol以及anotherSymbol是否相同,會得到false的布林值結果
console.log(uniqueSymbol === anotherSymbol); // 結果為false,因為每個符號都是唯一。
強型別語言(Strongly typed)要求在編譯或執行時對變數的型別進行嚴格的檢查,當兩個不同型別的資料進行運算時,因無法執行型別轉換,最終會導致錯誤,其代表語言為Java。
int a = 123;
String b = "123";
int c = a + b; // 會產生錯誤
弱型別(Weakly typed)語言,無需明確宣告變數型別即可使用,並允許型別轉換,其代表語言為JavaScript。
let a = 123;
let b = "456";
let c = a + b; // 123456 (JavaScript結果)
JavaScript 會將數字轉換成字串,最終結果為 "123456"
由於弱型別語言允許型別轉換,意味著在處理變數時需要謹慎處理『型別轉換』,以確保運算的正確性。