Javascript 如何使用条件运算符

Javascript 如何使用条件运算符,javascript,Javascript,我对编程一无所知。我在圣诞节买了一本编程书,从那以后我一直在关注JavaScript书 我不明白三元(或条件)运算符是如何工作的。 在下面的示例中,我知道如果x大于0,它将运行代码,但是x:-x做什么 x > 0 ? x : -x 这是一个三元运算符 如果验证了条件,则在之后(在:之前)运行语句的第一部分,否则运行另一部分 在这种情况下: y = x > 0 ? x: -x 如果x>0,则应阅读此y等于x,否则y等于-x这是编写

我对编程一无所知。我在圣诞节买了一本编程书,从那以后我一直在关注JavaScript书

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

                          x > 0 ? x : -x

这是一个三元运算符

如果验证了条件,则在之后(在
之前)运行语句的第一部分,否则运行另一部分

在这种情况下:

y = x > 0 ? x: -x

如果x>0,则应阅读此y等于x,否则y等于-x

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

   if(x > 0)
   {
      //then x
   }
   else
   {
      //then -x
   }
此语法对于例如

var myvar = (x > 0) ? x : -x;
你正在看电视。它是一个三值运算符(取3个操作数的运算符),在功能上与if语句有些类似

var y = (x > 0) ? x : -x // parenthesis for extra clarity
var y = x > 0 ? x : -x;
这几乎相当于:

  var y;
  if (x>0) { 
    y = x;
  } else {
    y = -x;
  }
一个纯文本翻译是,如果之前的值是?计算结果为true时,表达式将计算为
之前的值,否则将计算为
之后的值

条件运算符不需要仅在赋值中使用。这段代码根据x是否大于0做一件或另一件事

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

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

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

var y = (x > 0) ? x : -x // parenthesis for extra clarity
var y = x > 0 ? x : -x;
也可能看起来像

if( x > 0 ) { 
  var y = x;
} else {
  var y = -x;
}
在这里它被分解了

x > 0 ?
问号前是要满足的条件(或
if
语句)

如果条件的计算结果为truthy,则问号后冒号前的位是要运行/分配的代码

: -x

冒号后的bif是在条件的计算结果为falsy时运行/分配的代码:计算结果为TRUE的内容。 假的:评估为假的东西

JavaScript中只有五个
false
值:

undefined, null, NaN, 0, "" (empty string), and false
除上述内容之外的任何内容都是真实的

您使用的运算符是三元运算符,其行为如下:

   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)

我可以自己解释一下:

 x > 0 ? x : -x
如果x>0,则值应为x,否则,值应为-x

所以基本上这是使用if和else的一种简短形式。 比如:


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

三元运算符

x > 0 ? x: -x
状况?条件为真时要执行的指令:指令 如果条件为false,则执行


不,不管满足哪种条件,它都运行代码,只是运行不同的代码<代码>如果x>0
则运行
x
。否则运行
-x
这不是一个“truthy and falsy操作符”,而是一个“.HI的可能副本,谢谢您的帮助。您还可以帮助我完成以下代码吗?我如何调用这个函数eval(“函数f(){return x+1;}”);