以下Javascript语法是什么意思?请描述整个语法:
var x = 0;
x > 0 ? 1 : -1; // confused about this line
alert(x);
答案 0 :(得分:20)
这本身就没有任何意义。您将提醒x
的值,即0,就是这样。除非你把它分配给某个东西,否则第二个陈述毫无意义。但是,如果你这样做了:
var x=0;
var y = x > 0 ? 1 : -1;
alert(y);
你会得到-1。
The 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
时要返回的值。答案 1 :(得分:2)
这是条件运算符。它是三元运算符,因为它有三个操作数。它通常被称为三元运算符,但该术语相当松散,因为任何具有三个操作数的运算符都是三元运算符。它恰好是唯一常用的三元运算符。
这是什么意思?表达式
a?b:c
如果b
的计算结果为true,则计算结果为a
,否则表达式的计算结果为c
。
答案 2 :(得分:1)
这是一个三元运算符(?)
将其视为IF声明。
之前的声明'?'是你的if语句的条件。紧接在':'之前的内容是如果语句为真将执行/被分配的内容。如果语句为假,则':'将执行/被分配。
然而,您的代码只会提醒0,因为您没有从三元运营商那里分配任何东西。
基本上你的代码也可以说
x = 0;
alert(x);
// this would alert 0
您需要将其修改为:
x = 0;
var y = x > 0 ? 1 : -1;
alert(y);
答案 3 :(得分:0)