很抱歉问这么愚蠢的人,但这是什么

Sorry to ask such a dumb one, but what is this?

本文关键字:是什么 抱歉      更新时间:2023-09-26

最近我在代码中遇到了一行奇怪的行(第二个答案,找不到直接链接到答案的方法)。
就是这样:

reverse = !reverse ? 1 : -1;

好吧,我想特别是使用boolean ? option : option;

到目前为止,这看起来是我从未遇到的合法内容。我在谷歌上找不到它!请解释这是什么,语法是什么以及如何使用它,因为我真的很想知道这是什么,因为它看起来像一些高级智能的东西......

这是"如果"语句吗?感谢您阅读本文并回答!:D

这是一个三元(条件)表达式:

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!";

? :三元运算符。它的发明是为了简化这样的事情:

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

所以上面会变成:

var x = booleanExpression ? expression1: expression2;

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