如何在JavaScript中使用内联if语句?也有内联else语句吗?

就像这样:

var a = 2;
var b = 3;

if(a < b) {
    // do something
}

当前回答

Inline if在JavaScript中很简单,不需要大括号:

if (a < b) doSomething()

从技术上讲,你可以在同一行中有一个else,但它需要一个分号:

if (a < b) doSomething(); else doSomethingElse()

您的团队的编码标准可能不需要上面的示例。最重要的是你要遵循适合你的团队的惯例。就我个人而言,在许多情况下,我更喜欢if语句而不是三元语句,因为我发现它们更容易阅读。

其他回答

(条件)?expressionTrue: expressionFalse;

例子

int a=20, b=10;

if (a>b) {
  cout << "a greater than b";
} else {
  cout << "b greater than a";
} 

你可以简单地写:

int a=20, b=10;

(a>b) ? cout << "a greater than b" : cout << "b greater than a";

这个问题本质上不是:我能写出下面的东西吗?

if (foo)
  console.log(bar)
else
  console.log(foo + bar)

答案是,是的,上面的内容可以翻译。

但是,在做以下事情时要小心

if (foo)
  if (bar)
    console.log(foo)
  else 
    console.log(bar)
else 
  console.log(foobar)

请务必将模棱两可的代码用大括号括起来,因为上述代码将抛出异常(类似的排列将产生不希望看到的行为)。

你可以使用三元运算符,它等同于一个简单的if, else。

三元操作,调用两个结果的函数:

(a < b) ? DoSomething() : DoSomethingElse();

三元运算,只对其中一个结果调用函数:

(a < b) ? DoSomething() : {}; or (a < b)?.DoSomething();

你可以在JavaScript中这样做:

a < b ? passed() : failed();

如果要内联编写if语句,其中的代码应该只有一条语句:

if ( a < b ) // code to be executed without curly braces;