条件判断错误
快速摘要
代码能跑,但结果不对——往往是 `if` 的条件写反了、用了 `=` 而不是 `==`,或逻辑运算符用错。
为什么发生
把
==写成=(赋值而非比较),条件永远为真或假逻辑运算符用错,如把
&&写成||边界条件处理不当,如该用
<的地方用了<=对负数、空字符串、0 等假值做了错误的真值判断
最小示例
✗ 错误代码
let age = 18;
if (age = 18) {
console.log("成年");
}✓ 修复代码
const age = 18;
if (age === 18) {
console.log("成年");
}age = 18 是赋值,结果永远是 18(真值),条件恒成立。改成 age === 18 才是真正的比较。
如何诊断
用打印语句或调试器查看条件的实际值
对照需求确认边界条件应该包含还是不包含
检查比较运算符是否写成了赋值运算符
如何修复
修正比较运算符:把
=改成==或===调整逻辑运算符,确保
&&和||的语义符合需求对边界条件单独写测试用例验证
如何预防
使用严格相等
===避免==的隐式转换陷阱为关键条件分支编写单元测试,覆盖边界值