数据类型

在 JavaScript 中存在两种数据类型:原始数据类型、引用数据类型。

原始数据类型

在 JavaScript 现有规范中存在 7 种原始数据类型:

null
undefined
number
string
boolean
symbol (es6 新增)
bigint (es11 新增)

在 es10 中提出一直新的原始数据类型: bigint 大数类型,目前在 es11 中已经到了提案的第四个阶段。 es2020 已正式发布,此前进入 Stage 4 的提案均被纳入正式规范,该基本数据类型已于 2020年6月 在 es11 中正式成为新规范。

原始数据类型存储的是值,没有函数可以调用,如 undefined.toString() 会报错:toString of undefined。但 '1'.toString() 可以正确调用,原因是 '1' 已经被转换成 String 对象类型,不再是原始数据类型。

引用数据类型

引用数据类型也就是对象,存储的是(地址)指针。操作对象的时候,不是直接操作对实际的对象进行操作,而是操作对象的引用。

在内存中的存储

  • 原始数据类型存储在栈内存中
  • 引用数据类型在堆内存中开辟空间存储内容,将内容在堆内存中的地址存储在栈内存中