输入任意name值函数仅返回Rashad,如何排查修复该入门趣味程序bug?
问题根因
你的条件判断语句错误使用了赋值运算符=,而非相等比较运算符==/===。
执行if (name = "Rashad")时,代码会先把Rashad赋值给name变量,再判断赋值结果的布尔值,非空字符串的布尔值恒为true,所以这个条件分支永远会命中,无论你最初传入的name是什么值。
修复方案
把所有条件判断中用来做值对比的=替换为严格相等运算符===即可:
- 错误写法示例:
if (name = "Rashad") { return "匹配到Rashad的结果"; }
- 正确写法示例:
if (name === "Rashad") { return "匹配到Rashad的结果"; }
如果存在多个else if分支,请逐一检查所有判断语句,把所有误用的赋值运算符都替换为比较运算符,避免其他分支也出现同类问题。
内容的提问来源于stack exchange,提问作者Mohamed Rashad
相关产品推荐
相关产品推荐

