云计算百科
云计算领域专业知识百科平台

JavaScript-1.数据类型及存储差别

文章目录

  • 前言
  • 基本数据类型
  • 引用数据类型
  • 存储方式的差别(核心)
  • 赋值表现的差别

前言

在 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 被影响了,因为改的是同一个堆内存里的东西)

赞(0)
未经允许不得转载:网硕互联帮助中心 » JavaScript-1.数据类型及存储差别
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!