&& || ! ?? 逻辑运算符
最后更新:2026-09-09
&& || ! ?? 逻辑运算符
逻辑运算符组合布尔条件。&& 短路(全真才真)、|| 短路(有真即真)、! 取反、?? 空值合并(仅 null/undefined 触发默认值)。
| 分类 | 运算符 |
|---|---|
| ES 版本 | ES1 |
📝 语法
a && b; // 与
a || b; // 或
!a; // 非
a ?? b; // 空值合并
返回值:布尔值或操作数之一。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
匿名
未知
有名字
⚠️ 警告 || 会把 0、'' 等假值也替换掉——只想处理 null/undefined 用 ??。
💡 提示 ?? 是 ES2020 新增——专门解决 || 的过度替换问题。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| && || ! ?? | ✓ v1 | ✓ v12 | ✓ v1 | ✓ v1 | ✓ v1 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关运算符
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q|| 和 ?? 的区别?
A|| 对所有假值生效(包括 0 和空串);?? 只对 null/undefined 生效。
Q&& 的短路是什么意思?
A第一个为假时不再计算第二个——直接返回第一个。
Q! 和 !! 的区别?
A! 取反;!! 转为布尔值(双取反)。