【发布时间】:2022-02-09 18:36:43
【问题描述】:
我见过的每个if...else if 示例都包含一个最终的else 子句:
if (condition1) {
doA();
} else if (condition2) {
doB();
} else if (condition3) {
doC();
} else {
noConditionsMet();
}
alwaysDoThis();
我知道这基本上是嵌套 if...else 语句的语法糖:
if (condition1) {
doA();
} else {
if (condition2) {
doB();
} else {
if (condition3) {
doC();
} else {
noConditionsMet();
}
}
}
alwaysDoThis();
我从未见过任何if...else if 示例省略了最后一个else 子句。但是看到普通的if 语句(没有else 子句)是有效的,并且按照上面等效的“嵌套语句”,我的直觉告诉我可以这样做:
if (condition1) {
doA();
} else if (condition2) {
doB();
} else if (condition3) {
doC();
}
alwaysDoThis();
谁能给我指出一个明确说明它是否有效的资源或示例?
在另一个层面上,如果它是有效的,它会被推荐还是被认为是“不好的做法”?
【问题讨论】:
-
流量控制存在让您决定如何控制流量。当然,您可以通过运行代码并查看它的执行来确定它是否“有效”。
-
这取决于上下文。您应该始终考虑
else的情况,但通常您不需要明确地处理它。但是,我认为必要性的可能性随着案件的数量而增加。这符合您的说法,即在更大的条件级联中省略else子句是不寻常的。 -
感谢您对我的回答进行编辑;我学了一个new word。
标签: javascript if-statement conditional