JS 的值要么是原始类型,要么是对象。搞混“拷贝的是值还是引用”,是初学者最常见的坑。
图:原始值按值拷贝,对象按引用共享
声明方式
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。