javascript - 当内部 if 条件失败时转到外部 else 语句
问题描述
假设我有:
const apple = 1;
const banna = "apple";
if (apple === 1 || banana === "apple") {
if (banana === "orange") {
console.log("Yes it is orange");
}
else {
break;
}
}
else {
console.log("No not orange");
}
在提供的示例中,我想在第一个else
嵌套失败时执行外部条件。在这里,我使用的示例很简单,在我的用例中则完全不同。if
if
让我知道是否有人需要任何进一步的信息。
解决方案
你不能break
,else
不。你必须重新制定你的条件。您所写内容的逻辑重新表述很简单:
if (apple === 1 && banana === "orange") {
console.log('Yes it is orange')
} else {
console.log("No not orange")
}
...因为不可能同时banana
成为两者"orange"
,"apple"
但当然你的例子只是一个例子。如果有更多条件,您可以使用else if
:
if (x || y) {
// `x` or `y` was true (`z` may or may not also be true)
} else if (z) {
// `z` is true and `x` and `y` were not true
} else {
// None of them was true
}
或者
if (z) {
// `z` is true (`x` or `y` may also be true)
} else if (x || y) {
// `x` or `y` was true (`z` was not true)
} else {
// None of them was true
}
(我在上面的逻辑意义上使用了“true”,而不是严格的 JavaScript 布尔意义。JavaScript 中的条件使用真与假,而不是严格的真/假。if (1)
将进入if
正文,因为1
是一个真值;if (0)
不会进入if
正文,因为0
是一个虚假值。虚假值是0
, ""
, NaN
, null
, undefined
, false
[当然],并且在浏览器上document.all
[奇怪但真实];所有其他值都是真实的。)