首頁  >  文章  >  web前端  >  日間理解 JavaScript 資料型態:原始與非原始

日間理解 JavaScript 資料型態:原始與非原始

王林
王林原創
2024-09-03 21:08:20258瀏覽

Day nderstanding JavaScript Data Types: Primitive vs. Non-Primitive

在 JavaScript 中,資料型別分為兩大類:原始非原始(參考)型別。這種區別對於理解資料如何在記憶體中儲存和存取至關重要。讓我們分解每種類型,看看它們是如何運作的。

原始資料型別

JavaScript 有 7 種基本資料型態:

  1. 字串

    表示文字數據,例如“Hello World”。

  2. 數字

    表示整數和浮點數,例如 100、100.3。與其他一些語言不同,JavaScript 不區分整數和浮點數——它們都只是數字。

    const score = 100;
    const scoreValue = 100.3;
    console.log(typeof scoreValue); // Output: number
    
  3. 布林值

    代表邏輯值:true 或 false。

    const isLoggedIn = true;
    console.log(typeof isLoggedIn); // Output: boolean
    
  4. 符號

    代表一個唯一的識別符。即使兩個符號是用相同的描述創建的,它們也是不同的。

    const id = Symbol('123');
    const anotherId = Symbol('123');
    console.log(id === anotherId); // Output: false
    


  5. 表示有意缺少任何物件值。

    const outsideTemp = null;
    console.log(typeof outsideTemp); // Output: object
    
  6. 未定義

    表示已聲明但尚未賦值的變數。

    let weather;
    console.log(typeof weather); // Output: undefined
    
  7. BigInt

    表示任意精確度的整數,讓您處理超出 Number 安全整數限制的大數。

    const bigNumber = 23873847283748289483n;
    console.log(typeof bigNumber); // Output: bigint
    
原始資料型態:以值呼叫

基本型別直接儲存在與變數相關的記憶體位置。當您將原始值指派給另一個變數時,會建立該值的新副本。

let myName = "Aman";
let myOtherName = myName;
myOtherName = "Dawn";
console.log(myName);       // Output: Aman
console.log(myOtherName);  // Output: Dawn

在上面的範例中,更改 myOtherName 不會影響 myName,因為已建立該值的新副本。

非原始資料型別

非原始型,也稱為引用型,包括:

  1. 陣列

    可以是任何類型的元素集合,儲存為列表。

    const heros = ["ironman", "spiderman", "batman"];
    console.log(typeof heros); // Output: object
    
  2. 物件

    鍵值對的集合,其中鍵是字串或符號,值可以是任何類型。

    let myObj = {
        name: "Ayush",
        age: 21,
    };
    console.log(typeof myObj); // Output: object
    
  3. 功能

    旨在執行特定任務的程式碼區塊,可以儲存在變數中。

    const myFunction = function() {
        console.log("Hello World");
    };
    console.log(typeof myFunction); // Output: function
    
非原始資料型態:透過引用呼叫

非原始型別儲存在堆中,變數保存實際資料的參考(記憶體位址)。當您將非基本類型指派給另一個變數時,兩個變數都指向相同的記憶體位置。

let userOne = {
    email: "user1@google.com",
    upi: "user@ybl"
};
let userTwo = userOne;
userTwo.email = "aman@google.com";
console.log(userOne.email);  // Output: aman@google.com
console.log(userTwo.email);  // Output: aman@google.com

在上面的範例中,修改 userTwo.email 也會更改 userOne.email,因為這兩個變數都引用記憶體中的相同物件。

要點

  • 原始型別是直接儲存值的簡單資料型別。它們是不可變的,每個變數都保存自己的資料副本。
  • 非原始型別更複雜,變數儲存資料的參考。對一個變數的變更可能會影響引用相同資料的其他變數。
  • 理解這些差異對於在 JavaScript 中編寫高效且無錯誤的程式碼至關重要。

編碼愉快,下一篇見!

以上是日間理解 JavaScript 資料型態:原始與非原始的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn