5

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

var x = 0;
x > 0 ? 1 : -1;  // confused about this line
alert(x);
4

4 回答 4

20

这本身没有任何意义。您将 alertx的值,即 0,仅此而已。除非您将第二个语句分配给某物,否则第二个语句是没有意义的。但是,如果您会这样做:

var x=0;
var y = x > 0 ? 1 : -1;
alert(y);

你会得到-1。

Conditional Operator是 IF 语句的简写,它基本上说:

断言如果x > 0。如果是,则分配 1。如果不是,则分配 -1。

或者更一般的形式:

CONDITION ? VALUE_IF_TRUE : VALUE_IF_FALSE;

在哪里:

  • CONDITION- 可以是任何计算为布尔值的东西(即使在类型杂耍之后)。
  • VALUE_IF_TRUECONDITION-被断言的情况下要返回的值TRUE
  • VALUE_IF_FALSECONDITION-被断言的情况下要返回的值FALSE
于 2012-05-12T20:05:45.970 回答
2

那就是条件运算符。它是一个三元运算符,因为它有三个操作数。它通常被称为三元运算符,但该术语相当宽松,因为任何具有三个操作数的运算符都是三元运算符。恰好 is 是唯一常用的三元运算符。

这是什么意思?表达方式

a?b:c

计算结果为bifa计算结果为 true,否则表达式计算结果为c

于 2012-05-12T20:21:48.240 回答
1

这是一个三元运算符(?)

把它想象成一个 IF 语句。

'?' 之前的陈述 是您的 if 语句的条件。如果语句为真,紧接在“:”之前的内容是将执行/分配的内容。如果语句为假,则在“:”之后将执行/分配的内容。

但是,您的代码只会警告 0,因为您没有从三元运算符分配任何内容。

基本上你的代码还不如说。
x = 0; alert(x); // this would alert 0

您需要将其修改为:
x = 0; var y = x > 0 ? 1 : -1; alert(y);

于 2012-05-12T20:12:31.600 回答
0

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

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

if(x>0){
  x = 1
} else {
  x = -1
}
于 2012-05-12T20:05:21.633 回答