ECMAScript操作符

ECMAScript 操作符的分类、短路规则与高频易错点。

#type / concept #status / growing #resource / javascript #resource / ecmascript

[!info] related notes

ECMAScript操作符

操作符负责把值组合成表达式,并触发计算、比较、短路或赋值。真正需要掌握的不是死记全表,而是分类和边界。

常见分类

  • 算术: + - * / % **
  • 比较: > < >= <= == ===
  • 逻辑: && || ! ??
  • 赋值: =、复合赋值、逻辑赋值
  • 位运算: & | ^ ~ << >> >>>
  • 其他: typeof instanceof in delete new ?. ...

最值得优先掌握的几组

相等比较

  • === / !==: 默认优先使用
  • == / !=: 会触发类型转换,理解规则比滥用更重要

短路与默认值

  • &&: 左侧假就返回左侧
  • ||: 左侧真就返回左侧
  • ??: 只把 null / undefined 当作缺失值

所以 ||?? 不能随便互换。

可选链与展开

  • ?.: 安全向下取值
  • ...: 在不同语境下表示展开或剩余参数

容易和控制流混淆的边界

  • 操作符先产生值
  • 语句再决定流程

比如 a && b 是表达式,if (...) {} 是语句。二者经常协作,但不是同一层概念。

实践建议

  • 默认优先 ===
  • 给默认值时先判断该用 || 还是 ??
  • 遇到复杂表达式时,宁可拆成中间变量,也别过度依赖优先级记忆
创建于 2025/1/1 更新于 2026/5/27