我对编程完全陌生。我收到了圣诞节的编程书,从那以后我就一直关注着JavaScript书。
我不明白三元(或条件)运算符的工作原理。 在下面的例子中,我知道如果x大于0,它会运行代码但x:-x会做什么?
x > 0 ? x : -x
答案 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
条件?条件为真时执行的指令:指令 如果条件为假则执行