原始类型
在 JavaScript 中,**原始类型**(原始值、原始数据类型)是指不是 对象 且没有 方法 或 属性 的数据。共有 7 种原始数据类型
大多数情况下,原始值在语言实现的最低级别直接表示。
所有原始类型都是不可变的;也就是说,它们不能被更改。重要的是不要将原始类型本身与分配给原始值的变量混淆。变量可以重新分配给一个新值,但现有值不能像对象、数组和函数那样被更改。该语言不提供用于更改原始值的实用程序。
原始类型没有方法,但仍然表现得好像有方法一样。当访问原始类型的属性时,JavaScript 会将该值自动装箱到一个包装对象中,然后访问该对象的属性。例如,"foo".includes("f")
会隐式地创建一个 String
包装对象,并在该对象上调用 String.prototype.includes()
。这种自动装箱行为在 JavaScript 代码中不可见,但它是各种行为的一个很好的心理模型——例如,为什么“更改”原始类型不起作用(因为 str.foo = 1
不是将值分配给 str
本身的 foo
属性,而是分配给一个短暂的包装对象)。
另请参阅
- JavaScript 数据类型
- 原始数据类型(维基百科)
- 相关词汇表术语