我希望得到一个解释...
好吧,假设我有一个这样的if语句..
if(
height === 0 ||
weight === 0 &&
waist === 0 ||
shoeSize === 0
) {
...do something
}
现在height = 1
,weight = 1
但腰围和鞋码都相等0
如果语句返回真还是假?
我目前处于类似的情况,如果这,我有一个 if 语句
if(something){
function 1
} else if(example given above) {
function 2
} else {
function 3
}
现在我希望运行function 3
,因为我的第一个 if 语句是false
,然后是因为height && weight = 1
而不是0
应该false
else if
,因此进入 else 并运行function 3
但我似乎无法通过function 2
在这种情况下我是否正确实现了||
和&&
?
任何帮助将不胜感激!
谢谢
&&
运算符按运算顺序排在第一位,排在||
运算符之前。 因此,您的逻辑是这样执行的:
height === 0 || (weight === 0 && waist === 0) || shoeSize === 0
似乎您想将height
和weight
分组为一对,将waist
和shoeSize
分组为一对 - 所以我建议使用括号来做到这一点:
(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)
以上将评估false
当height
和weight
都相等1
但waist
和shoeSize
都相等0
。
如果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
,因此答案是正确的
你的第一句话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)