基本类型
一、原始类型(Primitive Types)
- 包含类型:
number、string、boolean、null、undefined、symbol(ES6 新增)、BigInt(ES11 新增)。 - 存储与性能:直接存储在栈内存中,占用空间小、访问速度快。
- 核心特性:值是不可变的,本身没有属性和方法。
二、包装对象(Wrapper Objects)
- 对应关系:每个原始类型(除
null和undefined)都有对应的包装对象:Number、String、Boolean。 - 存储与性能:存储在堆内存中,占用空间较大,是引用类型。
- 自动装箱机制:当原始类型调用属性或方法时(如
"hello".length),JavaScript 会临时创建对应的包装对象,完成调用后立即销毁该对象。
三、为什么无法给原始类型添加属性
以代码为例: javascript 运行 let str = "hello"; str.myProp = "test"; console.log(str.myProp); // 输出 undefined
原因是:
- 执行
str.myProp = "test"时,JavaScript 会临时创建String包装对象并添加myProp属性。 - 该包装对象在执行完这行代码后立即被销毁。
- 当访问
str.myProp时,会创建新的String包装对象,而新对象没有myProp属性,因此返回undefined。

浙公网安备 33010602011771号