javascript 中的数据类型主要分为原始类型(primitive types)和引用类型(reference types)。原始类型包括 number、string、boolean、undefined、null、symbol 和 bigint,它们存储的是实际的值;引用类型主要是 object,它存储的是指向内存中对象的指针。理解这种分类有助于正确处理变量赋值和数据比较。

原始类型有哪些具体种类
原始类型共有七种,分别是 Number、String、Boolean、Undefined、Null、Symbol 和 BigInt。这些类型的值是不可变的,且直接存储在栈内存中。当进行变量赋值时,复制的是具体的值本身。

console.log(typeof 123); // "number" console.log(typeof "hello"); // "string" console.log(typeof true); // "boolean" console.log(typeof undefined); // "undefined" console.log(typeof null); // "object" (历史遗留bug) console.log(typeof Symbol()); // "symbol" console.log(typeof BigInt(9007199254740991)); // "bigint"
引用类型是如何工作的
引用类型主要指 Object 及其子类(如 Array、Function、Date 等)。这类数据存储在堆内存中,而栈内存中存储的是指向堆内存地址的指针。当变量被赋值或传递时,复制的是这个指针,因此多个变量可能指向同一个对象。

let obj1 = { name: "Alice" };
let obj2 = obj1;
obj2.name = "Bob";
console.log(obj1.name); // "Bob", 因为 obj1 和 obj2 指向同一内存地址
let arr1 = [1, 2];
let arr2 = arr1;
arr2.push(3);
console.log(arr1); // [1, 2, 3]
如何区分原始类型和引用类型的赋值行为
通过对比代码可以看出,原始类型赋值是值的拷贝,互不影响;而引用类型赋值是引用的拷贝,修改一个会影响另一个。这是 JavaScript 内存管理的基础。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











