原始类型

JavaScript 中,**原始类型**(原始值、原始数据类型)是指不是 对象 且没有 方法属性 的数据。共有 7 种原始数据类型

大多数情况下,原始值在语言实现的最低级别直接表示。

所有原始类型都是不可变的;也就是说,它们不能被更改。重要的是不要将原始类型本身与分配给原始值的变量混淆。变量可以重新分配给一个新值,但现有值不能像对象、数组和函数那样被更改。该语言不提供用于更改原始值的实用程序。

原始类型没有方法,但仍然表现得好像有方法一样。当访问原始类型的属性时,JavaScript 会将该值自动装箱到一个包装对象中,然后访问该对象的属性。例如,"foo".includes("f") 会隐式地创建一个 String 包装对象,并在该对象上调用 String.prototype.includes()。这种自动装箱行为在 JavaScript 代码中不可见,但它是各种行为的一个很好的心理模型——例如,为什么“更改”原始类型不起作用(因为 str.foo = 1 不是将值分配给 str 本身的 foo 属性,而是分配给一个短暂的包装对象)。

另请参阅