🍎 JavaScript 数据类型
相关问题:
- JavaScript 上的数据类型有哪些?
- 存储上有哪些不同?
# 数据类型
JavaScript 中的数据类型可以分为两种,分别是:
- 六种基本类型:
- Number 数值
- String 字符串
- Boolean 布尔
- Undefined
- Null
- Symbol
- 引用类型:
- Object 对象
- Array 数组
- Function 函数
- 其他引用类型,Map 集合、Set 字典、Date 日期对象 …
# 存储区别
基本数据类型和引用数据类型存储 在内存的位置不同:
- 基本数据类型存储在内存的 栈 中;
- 引用数据类型的 对象 存储在 堆 中;
将一个变量赋值给一个变量时,解析器首先要确认这个值是 基本数据类型 还是 引用类型值。
🌰 例子 / 基本类型:
let a = 10;
let b = a;
b = 20;
console.log(a)
1
2
3
4
2
3
4
a
的值是一个基本类型,存储在栈中;将a
的值赋给b
,虽然连那个变量的值相等,但实际上保存了两个不同的内存地址,所以后来给b
赋值不会影响a
变量的值。
🌰 例子 / 引用类型:
let obj1 = {}
let obj2 = obj1
obj2.name = "simon"
console.log(obj.name) // simon
1
2
3
4
5
2
3
4
5
对于引用数据类型,存放在内存的堆中,每个堆在内存中都有一个内存地址,引用的地址存放在栈中。
obj1
是一个引用类型,赋值给obj2
实际上是把obj1
内存栈中的引用地址复制一份给obj2
,即指向内存堆中同一个引用对象,所以更改obj2
对象会对obj1
产生影响;
编辑 (opens new window)
📢 上次更新: 2022/09/02, 10:18:16