简写语法困惑:x> 0?1:-1;

osa*_*ami 5 javascript syntax conditional-operator

以下Javascript语法是什么意思?请描述整个语法:

var x = 0;
x > 0 ? 1 : -1;  // confused about this line
alert(x);
Run Code Online (Sandbox Code Playgroud)

Mad*_*iha 20

这本身就没有任何意义.你将警告x的值,即0,就是这样.除非你把它分配给某个东西,否则第二个陈述毫无意义.但是,如果你这样做了:

var x=0;
var y = x > 0 ? 1 : -1;
alert(y);
Run Code Online (Sandbox Code Playgroud)

你会得到-1.

条件运算符是IF语句的简写,它基本上说:

断言如果x > 0.如果是,则指定1.如果不是,则指定-1.

或者更一般的形式:

CONDITION ? VALUE_IF_TRUE : VALUE_IF_FALSE;
Run Code Online (Sandbox Code Playgroud)

哪里:

  • CONDITION - 可以是任何评估为布尔值的东西(即使在类型杂耍之后).
  • VALUE_IF_TRUE- CONDITION声明的情况下要返回的值TRUE.
  • VALUE_IF_FALSE- CONDITION声明的情况下要返回的值FALSE.


Cam*_*ike 0

它将是-1。这称为三元运算符

基本上它扩展到此(假设您打算放在x=第二行的开头)。

if(x>0){
  x = 1
} else {
  x = -1
}
Run Code Online (Sandbox Code Playgroud)

  • 问题中的代码并未扩展到此。该语句中没有赋值。 (7认同)