JS的意外提示行为

时间:2016-01-08 07:53:05

标签: javascript prompt

尝试通过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”,但这并没有解决问题。我确定我错过了一些非常简单的事情。任何帮助都会很棒。

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