如何写IF语句内嵌在JavaScript?如何写IF语句内嵌在JavaScript?(How to

2019-05-13 14:36发布

我如何使用内联if在JavaScript语句? 是否有一个内嵌else说法吗?

事情是这样的:

var a = 2;
var b = 3;

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

Answer 1:

你并不一定需要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



Answer 2:

有一个三元运算符,就像这样:

var c = (a < b) ? "a is less than b"  : "a is not less than b";


Answer 3:

对于写作if语句内联,它里面的代码应该只有一个语句:

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


Answer 4:

您也可以近似一个if / else语句只使用逻辑运算符。

(a && b) || c

以上是大致相同的话:

a ? b : c

当然还有,大致相同:

if ( a ) { b } else { c }

我说大概因为这种方法中,你必须知道的价值的一个区别b将评估为true,否则你总是会得到c 。 Bascially你必须认识到,部分将出现if () { here }现在您将条件的一部分, if ( here ) { }

以上是可能的,因为传递/返回,所形成的逻辑表达式,哪一个取决于操作者的类型的原始值中的一个的Java脚本的行为。 某些其他语言,如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语句,相比前两个方法可以在IE浏览器作为任务的一部分参数的右手边操作。

d = (a && b) || c;
d = a ? b : c;

if `a == true` then `d = b` else `d = c`

唯一的办法与标准,以实现这个if语句将复制分配新建分配FY:

if ( a ) { d = b } else { d = c }

你可能会问,为什么只使用逻辑运算符 ,而不是三元运算符 ,对于简单的情况下,你可能不会,除非你想确保ab都是真实的。 您也可以实现与逻辑运算符,如果你希望你的代码易于阅读,也不是真的那么intuative可以得到相当混乱使用嵌套三元操作...然后再更简化复杂的条件。



Answer 5:

用简单的英语,语法解释:

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;


Answer 6:

<div id="ABLAHALAHOO">8008</div>
<div id="WABOOLAWADO">1110</div>

parseInt( $( '#ABLAHALAHOO' ).text()) > parseInt( $( '#WABOOLAWADO ).text()) ? alert( 'Eat potato' ) : alert( 'You starve' );


Answer 7:

你可以做这样的在JavaScript:

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


Answer 8:

如果你只是想要一个内嵌IF(没有ELSE),您可以使用逻辑运算符:

(a < b) && /*your code*/;

如果你需要一个ELSE同样,使用三元操作,其他人建议。



Answer 9:

我经常需要通过使用运行每种条件更多的代码,: ( , , )的多个代码元素可以执行:

var a = 2;
var b = 3;
var c = 0;

( a < b ?  ( alert('hi'), a=3, b=2, c=a*b ) : ( alert('by'), a=4, b=10, c=a/b ) );


Answer 10:

仅供参考,您可以撰写有条件的经营者

var a = (truthy) ? 1 : (falsy) ? 2 : 3;

如果你的逻辑是足够复杂,那么你可以考虑使用IIFE

var a = (function () {
  if (truthy) return 1;
  else if (falsy) return 2;
  return 3;
})();

当然,如果你打算使用这个逻辑不止一次,那么你有啥可将其封装在一个功能,以保持整洁,干燥。



Answer 11:

要添加到这一点,如果条件你也可以在线使用&&和|| 运营商。 像这样

var a = 2;
var b = 0;

var c = (a > b || b == 0)? "do something" : "do something else";


Answer 12:

是不是这个问题基本上是:我可以写出下面?

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)

一定要包裹暧昧码在大括号如上述将抛出异常(和类似的置换将产生不希望的行为)。



文章来源: How to write an inline IF statement in JavaScript?