【JavaScript】基本型別
阿新 • • 發佈:2020-07-25
以下內容為學習記錄,可以參考 MDN 原文。
環境
- node v12.18.1
- npm 6.14.5
- vscode 1.46
- Microsoft Edge 83
概念
基本型別(基本數值、基本資料型別)是一種既非物件也無方法的資料。
在 JavaScript 中,共有7種基本型別:
- string
- number
- bigint
- boolean
- null
- undefined
- symbol (ECMAScript 2016新增)。
多數情況下,基本型別直接代表了最底層的語言實現。
所有基本型別的值都是不可改變的。但需要注意的是,基本型別本身和一個賦值為基本型別的變數的區別。
變數會被賦予一個新值,而原值不能像陣列、物件以及函式那樣被改變。
示例1
這個示例會幫助你瞭解基本型別不可改變的事實。
// 使用字串方法不會改變一個字串 var bar = "baz"; console.log(bar); // baz bar.toUpperCase(); console.log(bar); // baz // 使用陣列方法可以改變一個數組 var foo = []; console.log(foo); // [] foo.push("plugh"); console.log(foo); // ["plugh"] // 賦值行為可以給基本型別一個新值,而不是改變它 bar = bar.toUpperCase(); // BAZ
示例2
下面的示例將讓你體會到JavaScript是如何處理基本型別的。
// 基本型別 let foo = 5; // 定義一個貌似可以改變基本型別值的函式 function addTwo(num) { num += 2; } // 和前面的函式一樣 function addTwo_v2(foo) { foo += 2; } // 呼叫第一個函式,並傳入基本型別值作為引數 addTwo(foo); // Getting the current Primitive value console.log(foo); // 5 // 嘗試呼叫第二個函式... addTwo_v2(foo); console.log(foo); // 5
包裝物件
除了 null 和 undefined 之外,所有基本型別都有其對應的包裝物件:
- String 為字串基本型別。
- Number 為數值基本型別。
- BigInt 為大整數基本型別。
- Boolean 為布林基本型別。
- Symbol 為字面量基本型別。
這個包裹物件的 valueOf() 方法返回基本型別值。