JavaScript 有 7 种原始类型,其他所有内容(arrays、functions、objects)都是 object。
原始类型:string、number、boolean、null、undefined、bigint、symbol。
js
;
;
;
;
;
();
;
{};
[];
(){};
两个重要的事项
1. 原始类型是不可变的,通过值复制;对象通过引用复制。
js
let a = 5; let b = a; b++; // a is still 5 (independent copies)
let x = {n:1}; let y = x; y.n = 2; // x.n is now 2 (same object!)
2. typeof null === "object" 是一个长期的语言 bug,你必须记住——要检查 null,直接比较(x === null)。
为什么这很重要
理解值vs引用可以解释为什么修改共享对象会影响"两个"变量,为什么 {} === {} 是 false,以及为什么在 React 等状态驱动的 UI 中,在改变对象之前要复制对象(spread)。
