| 表达式 | == | === | 发生了什么 |
|---|
结论:日常一律用 === 和 !==。唯一保留 == 的习惯用法是 x == null——它同时命中 null 和 undefined,读作「x 是空的吗」。
true && run() // run 执行(左边为真,结果取决于右边) false && run() // run 不执行(左边为假,结果已确定) true || run() // run 不执行(左边为真,结果已确定) false || run() // run 执行
input 为空字符串 '' 时: '' || '游客' // '游客' —— '' 是假值,被兜底了 数值 0 想保留时: 0 || 100 // 100 ✗ 0 是假值,被当成「没有值」 0 ?? 100 // 0 ✓ ?? 只把 null / undefined 当成「没有值」
const settings = { theme: null, fontSize: 14 }
settings.theme ??= 'light' // null → 写入 'light'
settings.fontSize ??= 16 // 14 已有值 → 保持 14
// ||= 与 &&= 同理,只是判断条件换成 || / &&
// 最常见的用途:补配置项的默认值,而不覆盖用户已设的值