JavaScript中OR语句条件判断不生效问题求助
条件判断逻辑错误解析
你的代码问题出在逻辑运算符的误用:你在if条件里用了||(逻辑或),但这里应该用&&(逻辑与)。
错误原因分析
当extension的值是'Sr.'时:
- 第一个判断
extension != "Jr."结果是true - 因为逻辑或
||的规则是只要有一个条件为true,整个表达式就为true,所以后面的extension != "Sr."和extension != "I"根本不会被判断,直接进入if分支执行console.log("Should be false")。
不管extension是"Jr."、"Sr."还是"I",这个if条件都会成立:
- 如果是
"Jr.",extension != "Sr."为true - 如果是
"I",extension != "Jr."为true
所以永远走不了else分支。
修正后的代码
把||换成&&,表示同时不等于这三个值时才进入if分支,否则(等于其中一个)进入else:
var extension = "Sr."; if (extension != "Jr." && extension != "Sr." && extension != "I") { console.log("Should be false"); } else { console.log("Should be True"); // 现在会执行这里 }
补充说明
||(逻辑或):任意条件为true,整体结果为true&&(逻辑与):所有条件都为true,整体结果才为true
内容的提问来源于stack exchange,提问作者marivic valdehueza
相关产品推荐
相关产品推荐

