ECMAScript操作符
ECMAScript 操作符的分类、短路规则与高频易错点。
#type / concept
#status / growing
#resource / javascript
#resource / ecmascript
[!info] related notes
ECMAScript操作符
操作符负责把值组合成表达式,并触发计算、比较、短路或赋值。真正需要掌握的不是死记全表,而是分类和边界。
常见分类
- 算术:
+-*/%** - 比较:
><>=<====== - 逻辑:
&&||!?? - 赋值:
=、复合赋值、逻辑赋值 - 位运算:
&|^~<<>>>>> - 其他:
typeofinstanceofindeletenew?....
最值得优先掌握的几组
相等比较
===/!==: 默认优先使用==/!=: 会触发类型转换,理解规则比滥用更重要
短路与默认值
&&: 左侧假就返回左侧||: 左侧真就返回左侧??: 只把null/undefined当作缺失值
所以 || 和 ?? 不能随便互换。
可选链与展开
?.: 安全向下取值...: 在不同语境下表示展开或剩余参数
容易和控制流混淆的边界
- 操作符先产生值
- 语句再决定流程
比如 a && b 是表达式,if (...) {} 是语句。二者经常协作,但不是同一层概念。
实践建议
- 默认优先
=== - 给默认值时先判断该用
||还是?? - 遇到复杂表达式时,宁可拆成中间变量,也别过度依赖优先级记忆