javascript - 为什么我的 if else 语句返回不正确的结果?

标签 javascript if-statement

我的 Main.js 文件中有以下 if else 语句:

var fixA = "Trap";
var fixB = "Ball";

console.log(fixA); 
console.log(fixB);

if (fixA == "Mouse" || fixA == "Ball" && fixB == "Mouse" || fixB == "Ball") {
    console.log("Ball hit mouse");
}else if (
    fixA == "Trap" || fixA == "Ball" && fixB == "Trap" || fixB == "Ball") {
    console.log("Ball hit trap"); 
}else if (
    fixA == "Trap" || fixA == "Mouse" && fixB == "Trap" || fixB == "Mouse") {
    console.log("Trap hit mouse");
}

在我原来的声明中,fixAfixB 变量是根据相互碰撞的对象分配的,但这是行不通的。它一直显示“Ball hit mouse”,这是 if() 的结果。

我自己寻找问题,我给了 fixAfixB 一个固定的字符串,这再次导致相同的输出。甚至我的前两个控制台日志在设置变量后立即记录正确的字符串。所以这句话本身肯定有问题。我做了一些阅读、研究等,但我似乎无法弄清楚它有什么问题。

有人能帮帮我吗?

最佳答案

看看 operator precendece的JavaScript。 && 运算符比 || 运算符绑定(bind)更强。您可以通过在条件中添加括号来规避此行为。

if ( (fixA == "Mouse" || fixA == "Ball") && (fixB == "Mouse" || fixB == "Ball")) {
    console.log("Ball hit mouse");
}else if (
    (fixA == "Trap" || fixA == "Ball") && (fixB == "Trap" || fixB == "Ball")) {
    console.log("Ball hit trap"); 
}else if (
    (fixA == "Trap" || fixA == "Mouse") && (fixB == "Trap" || fixB == "Mouse")) {
    console.log("Trap hit mouse");
}

关于javascript - 为什么我的 if else 语句返回不正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23106429/

相关文章:

SQL IF 值 LIKE

javascript - 在javascript中调用一个数字的构造函数

javascript - 雅虎查询语言 - RSS

java - 如何将用户输入的字符串转换为 pig 拉丁语?

javascript - JS 基础 : How to use if/else inside a function and set to variable

php - 在 if 语句表达式中设置变量

javascript - 在鼠标上使用 jQuery 从左到右背景位置输入幻灯片

javascript - 您如何以设定的时间间隔重复执行 javascript 函数一定次数?

javascript - 当没有其他 div 滚动时滚动 div

python - 非常简单的数学游戏的答案总是错误的 - Python