文章目录
- 前言
- 基本数据类型
- 引用数据类型
- 存储方式的差别(核心)
- 赋值表现的差别
前言
在 JavaScript 中,数据类型主要分为两大类:基本数据类型和引用数据类型。
基本数据类型
String (字符串),Number (数字), Boolean (布尔), null, undefined, Symbol (符号), BigInt (大整数)
引用数据类型
Object (对象), Array (数组), Function (函数), Date, Map,RegExp 等
存储方式的差别(核心)
JavaScript 引擎在内存中划分了两个区域:栈(Stack) 和 堆(Heap)。 A. 基本类型:存放在“栈”中 特点:占据空间小、大小固定。
存储方式:变量名和值直接存储在栈内存中。当你访问变量时,直接拿到的就是那个值。
B. 引用类型:存放在“堆”中 特点:占据空间大、大小不固定。
存储方式:
真正的对象数据存放在堆内存中。
而在栈内存中,存放的是一个指针(内存地址),这个指针指向堆内存里的那个对象。
赋值表现的差别
① 基本类型的赋值:值拷贝 当你把一个基本类型变量赋值给另一个时,会在栈里开辟一个新空间,把值复制一份。两个变量互不影响。
let a = 10;
let b = a; // 复制了值 10
b = 20;
console.log(a); // 10 (a 没变)
② 引用类型的赋值:地址拷贝 当你把一个引用类型赋值给另一个时,复制的是栈里的指针(地址)。两个变量指向同一个堆内存地址。
let obj1 = { name: 'Jack' };
let obj2 = obj1; // 复制了地址,obj2 也指向同一个对象
obj2.name = 'Rose';
console.log(obj1.name); // 'Rose' (obj1 被影响了,因为改的是同一个堆内存里的东西)
网硕互联帮助中心






评论前必须登录!
注册