➗

JS 运算符速查

空值合并/可选链/展开等 JS 运算符。

本地处理 · 不上传

加载工具中…

相关:javascript · 运算符 · 可选链 · 展开

JS 运算符速查列出全部运算符及其优先级,含可选链、空值合并与逻辑赋值等较新语法。优先级搞错是难查 bug 的来源。

使用步骤

  1. 按逻辑、空值、解构、展开分类定位
  2. 注意空值合并只对 null 与 undefined 生效
  3. 可选链会短路,后续调用不会执行
  4. 确认目标运行环境的语法支持与编译配置

使用场景

  • 查找运算符的行为与优先级
  • 理解较新语法的用法
  • 排查表达式求值异常
  • 学习简洁的写法

小贴士

  • `??` 只在左侧为 null 或 undefined 时取右侧,而 `||` 对所有假值都生效。用 `||` 设默认值会让 0 和空字符串被意外替换。
  • 可选链 `?.` 在链路中遇到 null 或 undefined 时直接返回 undefined 而不抛错,能替代大量的层层判断。
  • `==` 会做类型转换且规则复杂,除了判断 null 或 undefined 之外应一律使用 `===`。

常见问题

?? 和 || 有什么区别?

`||` 在左侧为任意假值(0、空字符串、false、null、undefined)时取右侧;`??` 只在 null 或 undefined 时取右侧。用 `||` 设默认值会把有效的 0 和空字符串一并替换掉。

什么时候可以用 ==?

实践中只推荐用于 `x == null` 这一种情况,它能同时判断 null 和 undefined。其余场景一律用 `===`,因为 `==` 的隐式转换规则复杂到几乎无人能完整记住。

可选链能用在函数调用上吗?

能,写作 `obj.fn?.()`,函数不存在时返回 undefined 而不报错。也支持 `arr?.[0]` 形式的索引访问。它替代了大量冗长的存在性判断。

JS 运算符速查是免费的吗?

是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。

使用JS 运算符速查,我的数据安全吗?

安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。