基本类型

一、原始类型(Primitive Types)

  • 包含类型:numberstringbooleannullundefinedsymbol(ES6 新增)、BigInt(ES11 新增)。
  • 存储与性能:直接存储在栈内存中,占用空间小、访问速度快。
  • 核心特性:值是不可变的,本身没有属性和方法。

二、包装对象(Wrapper Objects)

  • 对应关系:每个原始类型(除nullundefined)都有对应的包装对象:NumberStringBoolean
  • 存储与性能:存储在堆内存中,占用空间较大,是引用类型。
  • 自动装箱机制:当原始类型调用属性或方法时(如"hello".length),JavaScript 会临时创建对应的包装对象,完成调用后立即销毁该对象。

三、为什么无法给原始类型添加属性

以代码为例:
 
javascript
 
运行
 
let str = "hello";
str.myProp = "test";
console.log(str.myProp); 
// 输出 undefined

  

 
 
原因是:
 
  1. 执行str.myProp = "test"时,JavaScript 会临时创建String包装对象并添加myProp属性。
  2. 该包装对象在执行完这行代码后立即被销毁。
  3. 当访问str.myProp时,会创建新的String包装对象,而新对象没有myProp属性,因此返回undefined
posted @ 2026-02-02 20:37  博星  阅读(0)  评论(0)    收藏  举报