如何if
在 JavaScript 中使用内联语句?也有内联else
语句吗?
像这样的东西:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
如何if
在 JavaScript 中使用内联语句?也有内联else
语句吗?
像这样的东西:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
您不一定需要 jQuery。仅 JavaScript 就可以做到这一点。
var a = 2;
var b = 3;
var c = ((a < b) ? 'minor' : 'major');
该c
变量将是minor
如果该值true
,并且major
如果该值是false
。
这称为条件(三元)运算符。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
有一个三元运算符,如下所示:
var c = (a < b) ? "a is less than b" : "a is not less than b";
if
内联写语句,里面的代码应该只有一个语句:
if ( a < b ) // code to be executed without curly braces;
您还可以仅使用逻辑运算符来近似 if/else。
(a && b) || c
上面的内容大致等同于:
a ? b : c
当然,大致相同:
if ( a ) { b } else { c }
我说粗略是因为这种方法有一个区别,即您必须知道 的值b
将评估为真,否则您将始终得到c
。基本上,您必须意识到将出现的部分if () { here }
现在是您放置的条件的一部分if ( here ) { }
。
由于 JavaScript 的传递/返回形成逻辑表达式的原始值之一的行为,上述情况是可能的,这取决于运算符的类型。某些其他语言,如PHP,进行运算的实际结果,即真或假,即结果总是真或假;例如:
14 && 0 /// results as 0, not false
14 || 0 /// results as 14, not true
1 && 2 && 3 && 4 /// results as 4, not true
true && '' /// results as ''
{} || '0' /// results as {}
与普通的 if 语句相比,一个主要的好处是前两种方法可以在参数的右侧进行操作,即作为赋值的一部分。
d = (a && b) || c;
d = a ? b : c;
if `a == true` then `d = b` else `d = c`
使用标准 if 语句实现此目的的唯一方法是复制分配:
if ( a ) { d = b } else { d = c }
你可能会问,为什么只使用逻辑运算符,而不是三元运算符,对于简单的情况下,你可能不会,除非你想确保a
和b
都是真实的。您还可以使用逻辑运算符实现更简化的复杂条件,使用嵌套的三元运算可能会变得非常混乱……如果您希望代码易于阅读,那么两者都不是那么直观。
用简单的英语,语法解释:
if(condition){
do_something_if_condition_is_met;
}
else{
do_something_else_if_condition_is_not_met;
}
可以写成:
condition ? do_something_if_condition_is_met : do_something_else_if_condition_is_not_met;