MDN上看到这一段
JavaScript 中的基本类型包装对象
除了 null
和 undefined
之外,所有基本类型都有其对应的包装对象:
String
为字符串基本类型Number
为数值基本类型BigInt
为大整数基本类型Boolean
为布尔基本类型Symbol
为字面量基本类型
我之前理解的包装对象就是装箱
let num = 123
num.toFixed(2)
var c = new Number(123)
c.toFixed(2)
c = null
网上查到许多文章中都是
对象是 JavaScript 语言最主要的数据类型,三种原始类型的值——数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”(wrapper)。
所谓“包装对象”,指的是与数值、字符串、布尔值分别相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。
那么 BigInt
和Symbol
的装箱过程是什么?
BigInt
和Symbol
都不能使用new
构造,得显式的调用Object
函数进行装箱。