➗
JS 运算符速查
空值合并/可选链/展开等 JS 运算符。
本地处理 · 不上传
加载工具中…
相关:javascript · 运算符 · 可选链 · 展开
JS 运算符速查列出全部运算符及其优先级,含可选链、空值合并与逻辑赋值等较新语法。优先级搞错是难查 bug 的来源。
使用步骤
- 按逻辑、空值、解构、展开分类定位
- 注意空值合并只对 null 与 undefined 生效
- 可选链会短路,后续调用不会执行
- 确认目标运行环境的语法支持与编译配置
使用场景
- 查找运算符的行为与优先级
- 理解较新语法的用法
- 排查表达式求值异常
- 学习简洁的写法
小贴士
- `??` 只在左侧为 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 运算符速查,我的数据安全吗?
安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。