You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中else与!==的区别是什么?新手技术咨询

分清else和!==,修复你的代码逻辑

一、else和!==的核心区别

  • !==是比较运算符:用来判断两个值是否不全等,返回true或false,只能作为if/else if的判断条件使用。
  • else是分支兜底:当前面所有if、else if的条件都不成立时,才会执行else里的代码,它不需要写条件,是最后一道逻辑分支。

二、你的代码为什么不符合预期

  1. 逻辑顺序踩坑:你写的else if(day!==monday)会把所有不是monday的情况都拦截——不管用户输入的是其他合法日期(比如friday)还是乱码,都会触发这个分支,导致后面的else(显示Invalid Day)永远不会执行。
  2. 大小写不统一:Thursday首字母大写,其他日期都是小写,用户输入小写thursday时会匹配失败,直接跳到else if(day!==monday)分支。

三、修正后的代码

先解决大小写问题,再调整逻辑顺序:

const day = prompt(`Insert The Day`).toLowerCase(); // 把输入统一转成小写,避免大小写匹配错误
if(day === `monday`){
   console.log(`Pray All Day Long🙏🏽`)
} else if(day === `tuesday`){
   console.log(`Code All Day Long`)
} else if(day === `wednesday`){
   console.log(`Meditate All Day Long`)
} else if(day === `thursday`){ // 改成小写,和输入格式统一
   console.log(`Design All Day Long`)
} else if(['friday', 'saturday', 'sunday'].includes(day)){ // 仅对有效非周一的日期显示这句话
   console.log(`Why Not Monday?`)
} else {
   console.log(`Invalid Day`)
}

如果想简化逻辑,也可以先判断是否为有效星期,再细分:

const day = prompt(`Insert The Day`).toLowerCase();
const validWeekDays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];

if(!validWeekDays.includes(day)){
   console.log(`Invalid Day`)
} else if(day === `monday`){
   console.log(`Pray All Day Long🙏🏽`)
} else if(day === `tuesday`){
   console.log(`Code All Day Long`)
} else if(day === `wednesday`){
   console.log(`Meditate All Day Long`)
} else if(day === `thursday`){
   console.log(`Design All Day Long`)
} else {
   console.log(`Why Not Monday?`)
}

四、关键要点

  • 使用!==做判断时,一定要注意条件的顺序,别让它提前覆盖后面的分支逻辑。
  • else是最后执行的分支,前面所有条件都不满足才会触发。
  • 处理用户输入时,统一格式(比如转小写)能避免很多匹配错误。

内容的提问来源于stack exchange,提问作者Ermilevel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:30:48