值類型和引用類型

值類型和引用類型

1.0 值類型:

const a = 10
const b = a
console.log(b) // 10

2.0 引用類型:

const a = { age: 21 }
let b = a
b.age = 100
console.log(a.age) // 100

3.0 深入分析

值類型佔用空間較小,是存儲在棧中

引用類型佔用空間可能很大,是存儲在堆中

4.0 常見值類型

let u // undefined
const n = 100 // number
const s = "" // string 
const b = true // boolean
const S = Symbol('') // Symbol

5.0 常見引用類型

const obj = { x: 21}
const arr = [1, 2, 3, '4']
const n = null // 特殊引用類型,指針指向空地址
// 特殊引用類型,但不用於存儲數據,所以沒有「拷貝、複製函數」這一說法
function fn() {}

typeof 能判斷哪些類型

typeof 運算符

  • 識別所有值類型
  • 識別函數
  • 判斷是否是引用類型(不可再細分)
// 值類型
let u // undefined
const n = 100 // number
const s = "" // string 
const b = true // boolean
const S = Symbol('') // Symbol
// 函數
typeof console.log // function
typeof function() {} // function
// 能識別引用類型(不能再繼續識別)
typeof null // object
typeof [1, 2] // object
typeof { x: 21 } // object
Tags: