JavaScript 中的基本類型 vs 物件

JavaScript 中的基本類型和物件有哪些主要區別呢? 首先,讓我們定義一下什麼是基本類型。 JavaScript 中的基本類型有: 字串 (String) 數字 (Number 和 BigInt) 布林值 (true 或 false) 未定義 (undefined) 符號值 (Symbol) null 是一種特殊的基本類型。如果你執行 typeof null,會返回 'object',但它實際上是一種基本類型。 除了基本類型之外的一切都是物件。 函數也是物件。我們可以在函數上設置屬性和方法。typeof 會返回 'function',但函數構造函數是來自於物件構造函數的。 基本類型和物件之間的主要區別有: 基本類型是不可變的,物件只有一個不可變的引用,但其值可以隨時間變化 基本類型是按值傳遞,物件是按引用傳遞 基本類型是按值複製,物件是按引用複製 基本類型是按值比較,物件是按引用比較 如果我們這樣複製一個基本類型: let name = 'Flavio' let secondName = name 現在,我們可以通過將 name 變量賦予一個新值來更改它,但 secondName 仍然保存著舊值,因為它是按值複製的: name = 'Roger' secondName //'Flavio' 如果我們有一個物件: let car = { color: 'yellow' } 然後將其複製到另一個變量: let car = { color: 'yellow' } let anotherCar = car 在這種情況下,anotherCar 指向與 car 相同的物件。如果你設置:...

JavaScript 類型

有些時候你可能會聽說 JS 是一種無類型的語言,但這是不正確的。確實,你可以將各種不同的類型賦值給變量,但 JavaScript 是有類型的。特別是,它提供了原始類型和對象類型。 原始類型 數字 字符串 模板字面量 布林值 null undefined 對象類型 如何查找變量的類型 原始類型 原始類型有: 數字 字符串 布林值 符號 還有兩種特殊類型: null undefined 我們將在下一節中詳細介紹它們。 數字 在內部,JavaScript 只有一種數字類型:每個數字都是浮點數。 數字字面量是在源代碼中表示的數字,根據它的寫法不同,它可以是整數字面量或浮點數字面量。 整數: 10 5354576767321 0xCC // 十六進制 浮點數: 3.14 .1234 5.2e4 //5.2 \* 10^4 字符串 字符串類型是一個字符序列。它在源代碼中被定義為字符串字面量,該字面量用引號或雙引號括起來。 'A string' "Another string" 字符串可以跨多行使用反斜杠: "A \ string" 字符串可以包含轉義序列,在打印字符串時可以被解釋,比如使用 \n 創建新行。當你需要在被引號括起來的字符串中輸入引號時,反斜杠也是很有用的,以防止被解釋為結束引號的字符: 'I\'m a developer' 字符串可以使用 + 運算符拼接: "A " + "string" 模板字面量 在 ES2015 中引入的模板字面量是一種更強大的定義字符串的方式。 const a\_string = `something` 你可以執行字符串替換,將任何 JS 表達式的結果嵌入其中:...