遇到了奇怪的javascript操作

时间:2012-07-26 14:25:39

标签: javascript

我正在开发一个由其他人设计的项目。我遇到了以下操作。我不知道它在做什么。它似乎正在返回1.

有人想详细说明吗? 谢谢!

   ( 7  > 8?2:1)

3 个答案:

答案 0 :(得分:3)

您正在查看Ternary Operator

它由(condition) ? (expression1) : (expression2)组成。如果(expression1)为真,则整个表达式将评估为(condition);如果(expression2)为false,则整个表达式将评估为(condition)

var i = (7 > 8 ? 2 : 1);

转换为

if (7 > 8)
{
  i = 2;
}
else
{
  i = 1;
}

答案 1 :(得分:0)

请参阅:http://en.wikipedia.org/wiki/%3F:

如果7>您的示例将返回2 8,否则为1。

答案 2 :(得分:0)

? :是三元运营商。这相当于

var x = 0;
if (7 > 8){
  x = 2;
} else {
  x = 1;
}

这是表达简单条件语句的简洁方法。这是一种很好的方法,可以在没有上面使用的详细语义的情况下有条件地为变量赋值。