尝试通过Javascript创建一个黑色插孔模拟器作为练习来增加我的JS准备(几周前开始编码)。
尝试使其简单且自包含(在JS中,没有html)我试图使用提示来模拟动作和响应。
function action(){
var response = prompt("What would you like to do \nInput 1 for Draw Card \nInput 2 for Play hand");
if(response !== 1 || response !== 2){
action();
}
}
所以,我的问题是,当我输入1或2时,为什么这会继续重复。如果输入1或2,我认为不会发生任何事情。我想也许这是因为提示将变量保存为字符串,所以我将1和2更改为“1”和“2”,但这并没有解决问题。我确定我错过了一些非常简单的事情。任何帮助都会很棒。
答案 0 :(得分:3)
你的逻辑错了。 "1"
匹配,因为它与"2"
不同,"2"
匹配,因为它与"1"
不同而其他匹配,因为它们与"1"
和"2"
不同
相反,您应该使用AND运算符:
response !== "1" && response !== "2"
答案 1 :(得分:1)
prompt
函数的结果始终是String,而String和Number类型的strict comparison ===
当然会产生错误:
"1" === 1 // false