Udacity谋杀谜题:JavaScript变量无法保存值问题求助
问题分析与解决
嘿,我一眼就揪出问题所在啦!这是新手常踩的小坑——你把赋值运算符和全等比较运算符搞混了😅
核心错误点
在JavaScript里:
=是赋值运算符,用来给变量设置新值(比如weapon = "pool stick")===是全等比较运算符,用来判断两个值是否完全相等(比如room === "ballroom")
你代码里所有给weapon和solved赋值的地方都用了===,这相当于在做“判断变量是否等于某个值”的操作,而非真正给变量赋值。所以不管条件满足与否,weapon始终是初始的空字符串,solved也一直是初始的true,自然没法输出正确结果。
修正后的代码
var room = "ballroom"; var suspect = "Mr. Kalehoff"; var weapon = ""; var solved = true; if (room === "dining room" && suspect === "Mr. Parkes") { weapon = "knife"; solved = true; } else if (room === "gallery") { weapon = "trophy"; solved = true; } else if (room === "ballroom" && suspect === "Mr. Kalehoff") { weapon = "pool stick"; solved = true; } else { weapon = "poison"; solved = false; } if (solved) { console.log(suspect + " did it in the " + room + " with the " + weapon + "!"); }
小提醒
以后写代码时一定要分清这两个运算符:
- 给变量赋值用单等号
= - 判断值是否相等用全等比较
===(优先用全等,能避开类型转换的坑)
现在你再修改room和suspect的值测试,就能得到正确的控制台输出啦!
内容的提问来源于stack exchange,提问作者fdaffdsafdsafdsafdsafdsafdsfsa
相关产品推荐
相关产品推荐

