如何在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
}
当前回答
内联如果:
(('hypothesis') ? 'truthy conclusion' : 'falsey conclusion')
真结论:当假设为真时执行的陈述
谬误结论:当假设为假时执行的陈述
你的例子:
var c = ((a < b) ? 'a<b statements' : '!(a<b) statements');
其他回答
你可以在JavaScript中这样做:
a < b ? passed() : failed();
也可以只使用逻辑运算符来近似if/else。
(a && b) || c
这句话大致相当于说:
a ? b : c
当然,大致和:
if ( a ) { b } else { c }
我说粗略是因为这种方法有一个不同之处,你必须知道b的值将被计算为真,否则你总是会得到c。基本上你必须意识到if () {here}将出现的部分现在是你放置if (here){}的条件的一部分。
上述情况是可能的,因为JavaScripts的行为是传递/返回一个形成逻辑表达式的原始值,这取决于操作符的类型。某些其他语言,如PHP,执行操作的实际结果,即true或false,这意味着结果总是true或false;例句:
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都为真。您还可以使用逻辑操作符实现更精简的复杂条件,使用嵌套的三元操作可能会变得相当混乱……如果你想让你的代码易于阅读,这两种方法都不是那么直观。
你不一定需要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
这个问题本质上不是:我能写出下面的东西吗?
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语句,其中的代码应该只有一条语句:
if ( a < b ) // code to be executed without curly braces;