很抱歉问这么傻,但是这是什么?

时间:2015-03-11 15:09:17

标签: javascript

最近我在code找到了一个奇怪的线路(第二个答案,找不到直接链接到答案的方法)。
就是这样:

reverse = !reverse ? 1 : -1;

嗯,我想具体使用boolean ? option : option;

到目前为止,这看起来合情合理。我在谷歌找不到它!请解释这是什么,语法是什么以及如何使用它,因为我真的想知道这是什么,因为它看起来像一些先进的智能东西......

这是if-else声明吗?感谢您阅读并回答! :d

2 个答案:

答案 0 :(得分:3)

它是三元(条件)表达式:

var result = condition ? "true result" : "false result";

示例:

// since 1 is less than 2 result = "It's less!"
var result = 1 < 2 ? "It's less!" : "It's more!";

答案 1 :(得分:1)

? :ternary operator。它的发明是为了简化这样的事情:

if (booleanExpression) {
    var x = expression1;
} else {
    var x = expression2;
}

所以上面会变成:

var x = booleanExpression ? expression1: expression2;

它们是等价的,但使用三元运算符更简洁。我大多看到这用于条件赋值或只是使if-else子句更紧凑/需要更少的击键。在您给出的示例中,我认为它用于根据提供给模块的参数或标志有条件地反转某些集合。