如何使用条件运算符

时间:2014-01-13 09:23:58

标签: javascript

我对编程完全陌生。我收到了圣诞节的编程书,从那以后我就一直关注着JavaScript书。

我不明白三元(或条件)运算符的工作原理。 在下面的例子中,我知道如果x大于0,它会运行代码但x:-x会做什么?

                          x > 0 ? x : -x

7 个答案:

答案 0 :(得分:1)

这是编写以下代码的简短方法:

   if(x > 0)
   {
      //then x
   }
   else
   {
      //then -x
   }

此语法对于例如

var myvar = (x > 0) ? x : -x;

答案 1 :(得分:1)

您正在查看conditional operator。它是一个三元运算符(运算符占用3个操作数),在功能上与if语句有些相似。

var y = (x > 0) ? x : -x // parenthesis for extra clarity

几乎相当于:

  var y;
  if (x>0) { 
    y = x;
  } else {
    y = -x;
  }

纯文本翻译是指如果之前的值?如果计算结果为true,则表达式的计算结果为:之前的值,否则将在:之后计算为值。

条件运算符不需要仅用于赋值。如果x大于0,则这段代码会做一件或另一件事。

x > 0 ? doOneThing(x) : doAnotherThing(x);

但是,由于if语句的重叠功能(如上所述),在这种情况下,通常会避免使用它,因为它不那么清楚。在作业中,如第一个例子中提到的那样,它更清晰,更简洁。 if会有一些代码重复(y =),并且在确定是否只为y赋值之前需要检查两个分支。使用条件运算符,事实很明显。

答案 2 :(得分:0)

那是一个三元运算符

如果条件已经过验证,则在:之后运行语句的第一部分,否则运行另一部分。

在案件中

y = x > 0 ? x: -x

你应该读这个y等于x如果x> 0否则y等于-x

答案 3 :(得分:0)

?被称为ternary运算符,并且是唯一具有三个操作数的运算符(三个部分)。该语句读起来像if else语句。问号前面的位是if语句。

var y = x > 0 ? x : -x;

也可以看起来像;

if( x > 0 ) { 
  var y = x;
} else {
  var y = -x;
}

这里分解了

x > 0 ?

在问号之前是要满足的条件(或if声明)

? x :

问号之后但冒号之前的位是运行/分配的代码,如果条件评估为真值。

: -x

冒号之后的bif是运行/分配的代码,如果条件评估为伪造

答案 4 :(得分:0)

Truthy:评价为TRUE的东西。 Falsey:评估为FALSE的东西。

JavaScript中只有五个falsey值:

undefined, null, NaN, 0, "" (empty string), and false

上述以外的任何内容均为truthy

您使用的运算符为ternary operator,其行为为:

   condition ? execute this expression if true : execute this expression if false

<强>样本

var x = 5;
x > 0 ? x : -x  # 5

var x = -1;
x > 0 ? x : -x  # 1 (positive of -1 as a result of minus operator in -x)

答案 5 :(得分:0)

我可以解释这一点,因为我得到了自己:

 x > 0 ? x : -x

如果x> 0,则value应为x,否则,该值应为-x。

所以基本上这是使用if和else的简短形式。 像:

string name=firstname!=null?firstname+" ":string.Empty

答案 6 :(得分:0)

要回答您的问题,如果x小于0,-x部分将返回x的负值。  如果x大于0,则返回值(x),否则返回负值(-x)。

三元运营商

x > 0 ? x: -x
  

条件?条件为真时执行的指令:指令   如果条件为假则执行