如何在JavaScript中使用内联if语句?也有内联else语句吗?
就像这样:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
如何在JavaScript中使用内联if语句?也有内联else语句吗?
就像这样:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
当前回答
你可以使用三元运算符,它等同于一个简单的if, else。
三元操作,调用两个结果的函数:
(a < b) ? DoSomething() : DoSomethingElse();
三元运算,只对其中一个结果调用函数:
(a < b) ? DoSomething() : {}; or (a < b)?.DoSomething();
其他回答
你不一定需要jQuery。JavaScript本身就可以做到这一点。
var a = 2;
var b = 3;
var c = ((a < b) ? 'minor' : 'major');
如果值为真,则c变量为次要值,如果值为假,则为主要值。
这被称为条件(三元)运算符。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
简化三元运算符
var locked = 1;
var canChange = locked != 1 ? true : false;
如果锁定为1,则canChange变量被设置为false,否则,它被设置为true。 在这种情况下,你可以使用一个布尔表达式来简化它,如下所示:
var locked = 1;
var canChange = locked != 1;
用于多个JavaScript三元运算符 下面的例子展示了如何在同一个表达式中使用两个三元运算符:
var speed = 90;
var message = speed >= 120 ? 'Too Fast' : (speed >= 80 ? 'Fast' : 'OK');
console.log(message);
当三元运算符使代码更易于阅读时,使用它是一种最佳实践。如果逻辑包含很多If…Else语句,你不应该使用三元操作符。
如果你只是想要一个内联If(没有ELSE),你可以使用逻辑AND运算符:
(a < b) && /*your code*/;
如果还需要ELSE,则使用其他人建议的三元操作。
(条件)?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";
有一个三元运算符,像这样:
var c = (a < b) ? "a is less than b" : "a is not less than b";