目录

🍎 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

a 的值是一个基本类型,存储在栈中;将 a 的值赋给 b ,虽然连那个变量的值相等,但实际上保存了两个不同的内存地址,所以后来给 b 赋值不会影响 a 变量的值。

🌰 例子 / 引用类型:

let obj1 = {}
let obj2 = obj1

obj2.name = "simon"
console.log(obj.name) // simon
1
2
3
4
5

对于引用数据类型,存放在内存的堆中,每个堆在内存中都有一个内存地址,引用的地址存放在栈中。 obj1 是一个引用类型,赋值给 obj2 实际上是把 obj1 内存栈中的引用地址复制一份给 obj2 ,即指向内存堆中同一个引用对象,所以更改 obj2 对象会对 obj1 产生影响;

📢 上次更新: 2022/09/02, 10:18:16