# 数据类型

# 有哪些数据类型?

基础类型(原始数据类型):

  1. 数字 number (整数或浮点数)

  2. 字符串 string

  3. 布尔值 boolean

  4. null 表示空

  5. undefined 为定义

  6. Symbol 独一无二的值

  7. 任意精度整数 bigint 1234n

复合类型(引用类型) Object

  1. 对象 object
  2. 数组 []
  3. 函数 function
  4. 文档对象 document
  5. Math
  6. 正则 //
  7. Date
  8. Error

# 内存图

js 把内存分为代码区和数据区。 数据区又分为 stack(栈)和 heap(堆)。

# 栈内存

# 1. 原始类型直接存放在栈中。(存放真实的数据), 如果是不同的值会存法规不同的栈.
内存图
# 2. 如果 b = a; 那么会直接把 a 的值给了 b。
内存图
# 3. 栈中的特点

存放一些简单的数据,占据的空间小,大小固定,属于被频繁使用数据,所以放入栈中存储。

# 堆内存

# 1. 在栈中存放地址,然后指向堆内存中的数据。
内存图
# 2. 如果 arr1 = arr2; 那么是把 arr2 地址给了 arr1。
内存图
# 3. 堆中的特点

堆中存储的对象,占据空间大、大小不固定。引用数据类型在栈中存储了指针, 指针指向了堆中该实体的地址,当解释器去寻找引用值时,首次会先去栈中查找地址,然后从堆中获取实体。

在堆中存放的数据大,占用内存多,不是频繁访问的数据。