如何在JavaScript条件下实现elseif ?


当前回答

你可以使用这个语法,它在功能上是等价的:

switch (true) {
  case condition1:
     //e.g. if (condition1 === true)
     break;
  case condition2:
     //e.g. elseif (condition2 === true)
     break;
  default:
     //e.g. else
}

这是可行的,因为每个条件在与开关值比较之前都被完全计算,所以第一个计算为true的条件将匹配,它的分支将执行。如果您记得使用break,则后续分支将不会执行。

注意,这里使用了严格比较,因此条件仅仅为“真”的分支将不会被执行。你可以用双重否定:!!条件将true值转换为true。

其他回答

if ( 100 < 500 ) {
   //any action
}
else if ( 100 > 500 ){
   //any another action
}

简单,利用空间

x = 10;
if(x > 100 ) console.log('over 100')
else if (x > 90 ) console.log('over 90')
else if (x > 50 ) console.log('over 50')
else if (x > 9 ) console.log('over 9')
else console.log('lower 9') 

实际上,从技术上讲,当缩进正确时,它将是:

if (condition) {
    ...
} else {
    if (condition) {
        ...
    } else {
        ...
    }
}

严格地说,没有别的如果了。

(更新:当然,如上所述,上述内容并不被认为是好的风格。)

在JavaScript的if-then-else中,技术上没有elseif分支。

但如果你这样写的话,它是可行的:

if (condition) {

} else if (other_condition) {

} else {

}

为了让它更明显,你可以使用额外的一对{和}来扩展上面的代码:

if (condition) {

} else {

   if (other_condition) {

   } else {

   }

}

在第一个例子中,我们使用了一些关于{}使用的隐式JS行为。如果里面只有一条语句,我们可以省略这些花括号。在这个构造中就是这样,因为内部的if-then-else只算作一条语句。事实上,这是两个嵌套的if语句。而不是一个带有两个分支的if语句,就像第一眼看到的那样。

这样它就类似于其他语言中出现的elseif。

这是你使用它的风格和偏好的问题。

只需要加一个空格:

if (...) {

} else if (...) {

} else {

}