同时使用&&和| |(javascript)
我希望得到一个关于这个的解释 好吧,假设我有这样一个if语句同时使用&&和| |(javascript),javascript,Javascript,我希望得到一个关于这个的解释 好吧,假设我有这样一个if语句 if( height === 0 || weight === 0 && waist === 0 || shoeSize === 0 ) { ...do something } 现在身高=1,体重=1,但腰围和鞋子尺寸都等于0 if语句将返回true还是false 我目前处于一个类似的情况,我有一个if语句,如果 if(something){ function 1 } else if(e
if(
height === 0 ||
weight === 0 &&
waist === 0 ||
shoeSize === 0
) {
...do something
}
现在身高=1,体重=1,但腰围和鞋子尺寸都等于0
if语句将返回true还是false
我目前处于一个类似的情况,我有一个if语句,如果
if(something){
function 1
} else if(example given above) {
function 2
} else {
function 3
}
现在我希望运行函数3,因为我的第一个if语句为false,然后因为height&&weight=1而不是0,所以else if应该为false,因此转到else并运行函数3,但我似乎无法通过函数2。在这种情况下,我是否正确地实现了| |和&&呢
任何帮助都将不胜感激
谢谢在| |运算符之前,&&运算符位于中的第一位。因此,您的逻辑是这样执行的:
height === 0 || (weight === 0 && waist === 0) || shoeSize === 0
看起来你想把身高和体重分成一对,把腰围和鞋样分成一对——所以我建议你用帕伦斯来做到这一点:
(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)
当身高和体重都等于1,但腰围和鞋尺码都等于0时,上述结果将为假。如果身高=1,体重=1,您的示例将返回真值 因为“AND”具有更高的优先级 所以你的例子是平等的 身高===0 | |体重===0和腰围===0 | |鞋样===0 当给定高度=1时,重量=1,等于1==0 | | 1==0&&0==0 | | 0==0 =>假| | | | |假,因此答案是真的你的第一个陈述是真的,因为你的最后一个条件似乎是真的 如果没有以| | true结尾的大括号,则可以有任何结果为true的条件。。。例如:
false || false && false || false || false && false || true // ==> true
您可能需要添加大括号以获得正确的状态。。。比如:
(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)
(height === 0 || weight === 0) && (waist === 0 || shoeSize === 0)