JavaScript 数据类型
一、是什么
JavaScript 中的数据类型用于描述值的结构与行为。
分为两大类:基本类型 + 引用类型
二、基本数据类型(7种)
- string
- number
- boolean
- null
- undefined
- symbol
- bigint
特点: 👉 存储在栈中,值不可变
三、引用类型
- object
- array
- function
- date
- regexp
特点: 👉 存储在堆中,变量保存的是引用地址
四、核心区别
1. 存储方式
基本类型:栈(值)
引用类型:堆(地址)
内存示意图
栈(Stack) 堆(Heap)
┌─────────────┐ ┌─────────────────┐
│ a: 10 │ │ │
├─────────────┤ │ obj1/obj2 指向 │
│ b: 20 │ │ ┌───────────┐ │
├─────────────┤ │ │ { name: │ │
│ obj1: 0x001 ├──────────────┼─→│ '李四' │ │
├─────────────┤ │ │ } │ │
│ obj2: 0x001 ───────────────┼─→│ │ │
├─────────────┤ │ └───────────┘ │
│ c: 'hello' │ │ │
└─────────────┘ └─────────────────┘
2. 赋值行为
let a = 1;
let b = a;
b = 2;
console.log(a); // 1
👉 基本类型拷贝的是值
let obj1 = { a: 1 };
let obj2 = obj1;
obj2.a = 2;
console.log(obj1.a); // 2
👉 引用类型共享地址
五、typeof & instanceof
typeof
typeof 1; // number
typeof 'a'; // string
typeof null; // object(历史bug)
instanceof
判断对象类型:
[] instanceof Array; // true
六、总结
JavaScript 类型系统的本质:“值类型 + 引用地址模型”