Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
同时使用&&和| |(javascript)_Javascript - Fatal编程技术网

同时使用&&和| |(javascript)

同时使用&&和| |(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语句

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)