八个类型、两类值、一份必背的真假值清单

下面的表格由 JS 读取数据后现场渲染——数值、类型、真假值都是真实运行结果。

[迷你控制台]

一、typeof 速查:八种类型与三个必须记住的特例

值typeof 结果说明

二、原始值 vs 引用值:赋值和传参的差别都从这来

字符串、数字、布尔等「原始值」比较的是内容:
'ada' === 'a' + 'da'   // true

对象、数组等「引用值」比较的是「是不是同一个对象」:
{a:1} === {a:1}       // false —— 内容一样,但是两个盒子
const c = a           // 传递的不是内容,是「同一个盒子」的地址

三、哪些值「看着有,其实是假」

被当作条件时自动转成布尔,只有下面这些是假(falsy),其余一切为真——包括空数组 [] 和空对象 {}。

值Boolean(值)

所以 if (list.length) 比 if (list) 靠谱:空数组也是真,但它的 length 是 0。

四、转换的四个高频坑