JS 的值要么是原始类型,要么是对象。搞混“拷贝的是值还是引用”,是初学者最常见的坑。

原始值 a = 1b = a 对象引用 obj ──► { }alias ─┘
图:原始值按值拷贝,对象按引用共享

声明方式

  • const:绑定不可重新赋值,优先使用。
  • let:块级作用域,值可变。
  • 尽量避免 var(函数作用域、变量提升易踩坑)。
const name = "笔记";
let count = 1;
const user = { name: "Ada" };
const alias = user; // 同一个对象
alias.name = "Grace";
console.log(user.name); // Grace
记住:typeof null === "object" 是历史包袱;判断空值请用 === null。