JS學習筆記#8 | 引用資料型別(Reference Data Type)

JS學習筆記#8 | 引用資料型別(Reference Data Type)

更新於 發佈於 閱讀時間約 3 分鐘

在 JavaScript 中,資料型別主要分為原始型(Primitive Type)和引用型(Reference Type)


原始型(Primitive Type)

  • 定義:是儲存實際數據值的變數。它們在記憶體中直接存儲值,並且每個原始型變數都有自己的記憶體空間。
  • 資料型別StringNumberBooleanNullUndefinedSymbolBigInt
  • 特點
    • 值比較:當比較兩個原始型變數時,比較的是它們的值。
    • 獨立性:原始型變數之間的複製不會互相影響。修改其中一個不會影響另一個。
let x = 10; 
let y = 10;
console.log(x == y); // 輸出:true
let a = 10;
let b = a; // 將 a 的值複製到 b
b = 20; // 修改 b 不會影響 a
console.log(a); // 輸出:10
console.log(b); // 輸出:20

引用型(Reference Type)

  • 定義:儲存的是對象在記憶體中的地址,而不是實際的數據。這意味著多個變數可以指向同一個對象,並影響同一個記憶體位置。
  • 資料型別ObjectArrayFunction
  • 特點
    • 引用比較:當比較兩個引用型變數時,比較的是它們的記憶體位置。
    • 共享記憶體:如果兩個變數指向同一個對象,對該對象的任何更改都會影響這兩個變數。
let Array1 = [1, 2, 3]; 
let Array2 = [1, 2, 3];
console.log(Array1 == Array2); // 輸出:false ,因為其實是指向不同的記憶體位置
let Array1 = [1, 2, 3];
let Array2 = Array1;
console.log(Array1 == Array2); // 輸出:true ,因為指向相同的記憶體位置
let arr1 = [1, 2, 3];
let arr2 = arr1; // 將 arr1 的引用複製給 arr2
arr2[0] = 99; // 修改 arr2 的內容
console.log(arr1); // 輸出:[99, 2, 3],因為 arr1 和 arr2 指向同一個陣列

原始型與引用型的主要區別

  1. 儲存方式
    • 原始型:直接儲存值。
    • 引用型:儲存對象的地址(引用)。
  2. 複製行為
    • 原始型:賦值會複製其值,兩者相互獨立。
    • 引用型:賦值會複製其引用,兩者指向相同的對象,修改一個會影響到另一個。
  3. 比較行為
    • 原始型:比較的是值本身。
    • 引用型:比較的是記憶體地址,只有在指向同一個對象時才相等。




avatar-img
koko的沙龍
1會員
29內容數
留言
avatar-img
留言分享你的想法!
koko的沙龍 的其他內容
陣列(Array)是 JavaScript 中用來儲存一組有序資料的集合。 陣列可以包含各種資料型別的值,例如數字、字串、布林值,甚至其他陣列或物件。了解陣列的基本操作是編寫高效 JavaScript 程式碼的重要基礎。
函式(Function)是 JavaScript 中用來完成特定任務的可重複執行的程式碼片段。 函式可以接受輸入(參數),進行處理,並回傳結果。 主要的函式建立方式有函式宣告、函式表達式、和箭頭函式。
if 語句是用來根據條件執行特定程式碼的一種控制流程語句。在 JavaScript 中,if 語句可以幫助我們做出決策,當條件為 true 時執行一段代碼,否則忽略。
在 JavaScript 中,邏輯運算子和比較運算子是用於條件判斷的重要工具。 它們常被用來進行邏輯運算和比較數值或變數,進一步決定程式的執行流程。
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
在 JavaScript 中,資料型態分為「原生值(primitive values)」和「物件(objects)」。原生值包括String、Number、Boolean、Null、Undefined、Symbol和 BigInt。物件則是包括Array和 Function等結構。
陣列(Array)是 JavaScript 中用來儲存一組有序資料的集合。 陣列可以包含各種資料型別的值,例如數字、字串、布林值,甚至其他陣列或物件。了解陣列的基本操作是編寫高效 JavaScript 程式碼的重要基礎。
函式(Function)是 JavaScript 中用來完成特定任務的可重複執行的程式碼片段。 函式可以接受輸入(參數),進行處理,並回傳結果。 主要的函式建立方式有函式宣告、函式表達式、和箭頭函式。
if 語句是用來根據條件執行特定程式碼的一種控制流程語句。在 JavaScript 中,if 語句可以幫助我們做出決策,當條件為 true 時執行一段代碼,否則忽略。
在 JavaScript 中,邏輯運算子和比較運算子是用於條件判斷的重要工具。 它們常被用來進行邏輯運算和比較數值或變數,進一步決定程式的執行流程。
在 JavaScript 中,字串(String)是一個不可變的原生資料型態,用來存放並處理文字。JavaScript 提供多種方法和屬性來操作和格式化字串。理解這些屬性與方法,能讓我們更靈活地處理文字資料,特別是在處理用戶輸入、顯示訊息或處理 API 回傳的資料時非常有用。
在 JavaScript 中,資料型態分為「原生值(primitive values)」和「物件(objects)」。原生值包括String、Number、Boolean、Null、Undefined、Symbol和 BigInt。物件則是包括Array和 Function等結構。