为什么JavaScript代码执行else分支而非预期的else-if分支?
问题原因及解决方法
问题的核心是严格相等比较的字符串存在空格差异:
你定义的变量day是"sunday"(末尾无空格),但对应周末分支的判断条件里,"saturday "和"sunday "的末尾都多了一个空格。
JavaScript的===属于严格相等运算符,会同时校验字符串的内容和长度,带空格的字符串和不带空格的字符串完全不相等,所以这个else-if分支的条件无法匹配,代码会跳过所有符合预期的分支,最终执行else分支的内容。
修复方法就是去掉条件字符串末尾的空格,修改后的代码片段如下:
else if (day === "saturday" || day === "sunday") { console.log("enjoy the weekend 🤭"); }
内容的提问来源于stack exchange,提问作者Lakshya Roy
相关产品推荐
相关产品推荐

