我希望得到一个解释......
好的说我有这样的if语句..
if(
height === 0 ||
weight === 0 &&
waist === 0 ||
shoeSize === 0
) {
...do something
}
现在height = 1
,weight = 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
和||
?
任何帮助将不胜感激!
由于
答案 0 :(得分:4)
&&
运算符位于||
运算符之前的order of operations中。因此,你的逻辑正在执行:
height === 0 || (weight === 0 && waist === 0) || shoeSize === 0
您似乎希望将height
和weight
分组成对,waist
和shoeSize
成对 - 所以我建议使用parens做到这一点:
(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)
当false
和height
都等于weight
但1
和waist
都等于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)