简单if-else函数返回结果异常,周一/二/三未触发预期分支
代码问题排查与修复
你的问题出在这一行条件判断:
else if (day == "Sunday" || "Thursday")
JavaScript 中逻辑或运算符 || 需要左右两侧都是完整的布尔表达式。你这里右边的 "Thursday" 是一个非空字符串,在布尔判断中会被直接解析为 true。这就意味着,只要前面的周六、周五条件不成立,这个分支的条件就永远为真,所以周一、周二、周三都会进入这个分支返回 "Set alarm for 4:50am",而不会走到最后的 else。
正确的写法应该是为每个条件都完整判断 day 的值:
else if (day == "Sunday" || day == "Thursday")
修正后的完整代码:
let day = "Monday" function alarmTime(day) { if (day == "Saturday") { return "Set alarm for 8:00am" } else if (day == "Friday") { return "Set alarm for 5:35am" } else if (day == "Sunday" || day == "Thursday") { return "Set alarm for 4:50am" } else { return "Set alarm for 7:00am" } } console.log(alarmTime(day)); // 现在会输出 "Set alarm for 7:00am"
内容的提问来源于stack exchange,提问作者LottieJane1312
相关产品推荐
相关产品推荐

