使用&&和||在一起(javascript)

时间:2018-03-27 05:18:57

标签: javascript

我希望得到一个解释......

好的说我有这样的if语句..

if(
  height === 0 ||
  weight === 0 &&
  waist === 0 ||
  shoeSize === 0 
) {
    ...do something 
}

现在height = 1weight = 1但腰围和鞋码都相等0

if statment会返回true还是false?

我目前处于类似的情况,如果这个

,我有一个if语句
if(something){
  function 1
} else if(example given above) {
  function 2
} else {
  function 3
}

现在我希望运行function 3,因为我的第一个if语句是false,然后因为height && weight = 1而不是0 else if应该{ {1}}因此转到其他地方并运行false但是我似乎无法通过function 3我在这种情况下是否正确实施了function 2||

任何帮助将不胜感激!

由于

3 个答案:

答案 0 :(得分:4)

&&运算符位于||运算符之前的order of operations中。因此,你的逻辑正在执行:

height === 0 || (weight === 0 && waist === 0) || shoeSize === 0 

您似乎希望将heightweight分组成对,waistshoeSize成对 - 所以我建议使用parens做到这一点:

(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)

falseheight都等于weight1waist都等于shoeSize时,上述内容将评估为0 }。

答案 1 :(得分:1)

如果height = 1, weight = 1,您的示例将返回true 因为' AND'具有更高的优先级

所以你的榜样是平等的 height === 0 || (weight === 0 && waist === 0) || shoeSize === 0

给定height=1, weight=1时,等于1===0 || (1===0 && 0===0) ||0===0

=> false || true || false,因此答案是正确的

答案 2 :(得分:1)

您的第一个陈述是true,因为您的上一个OR-Condition似乎是true

false || false && false || true  // ==> true

您可以有任何条件导致true没有大括号以|| true结尾...例如:

false || false && false || false || false && false || true // ==> true

您可能需要添加大括号才能获得正确的条件......例如:

(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)