以下 Javascript 语法是什么意思?请描述整个语法:
var x = 0;
x > 0 ? 1 : -1; // confused about this line
alert(x);
以下 Javascript 语法是什么意思?请描述整个语法:
var x = 0;
x > 0 ? 1 : -1; // confused about this line
alert(x);
这本身没有任何意义。您将 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_TRUE
CONDITION
-被断言的情况下要返回的值TRUE
。VALUE_IF_FALSE
CONDITION
-被断言的情况下要返回的值FALSE
。那就是条件运算符。它是一个三元运算符,因为它有三个操作数。它通常被称为三元运算符,但该术语相当宽松,因为任何具有三个操作数的运算符都是三元运算符。恰好 is 是唯一常用的三元运算符。
这是什么意思?表达方式
a?b:c
计算结果为b
ifa
计算结果为 true,否则表达式计算结果为c
。
这是一个三元运算符(?)
把它想象成一个 IF 语句。
'?' 之前的陈述 是您的 if 语句的条件。如果语句为真,紧接在“:”之前的内容是将执行/分配的内容。如果语句为假,则在“:”之后将执行/分配的内容。
但是,您的代码只会警告 0,因为您没有从三元运算符分配任何内容。
基本上你的代码还不如说。
x = 0;
alert(x);
// this would alert 0
您需要将其修改为:
x = 0;
var y = x > 0 ? 1 : -1;
alert(y);