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



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

好吧,假设我有一个这样的if语句..

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

现在height = 1weight = 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应该falseelse if,因此进入 else 并运行function 3但我似乎无法通过function 2在这种情况下我是否正确实现了||&&

任何帮助将不胜感激!

谢谢

&&运算符按运算顺序排在第一位,排在||运算符之前。 因此,您的逻辑是这样执行的:

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

似乎您想将heightweight分组为一对,将waistshoeSize分组为一对 - 所以我建议使用括号来做到这一点:

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

以上将评估falseheightweight都相等1waistshoeSize都相等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)

最新更新