Вы смотрите на conditional operator. Это тернарный оператор (оператор, который принимает 3 операнда), несколько схожий по функции с оператором if.
var y = (x > 0) ? x : -x // parenthesis for extra clarity
почти эквивалентен следующему:
var y;
if (x>0) {
y = x;
} else {
y = -x;
}
Перевод простого текста, что если значение до? оценивает значение true, выражение оценивает значение до :
, в противном случае оно оценивается после :
.
Условный оператор не обязательно должен использоваться только в назначениях. Эта часть кода делает ту или иную вещь, если x больше 0 или нет.
x > 0 ? doOneThing(x) : doAnotherThing(x);
Однако из-за перекрытия функциональных возможностей с утверждением, если (описано выше), в случаях, подобных этому, он часто избегают, потому что это не так очевидно. В присваиваниях, как и в первом примере, он более ясен и более краток. Если бы было некоторое повторение кода (y =
), и обе ветви должны быть проверены, прежде чем идентифицировать это, если просто присваивает значение y
. С условным оператором этот факт сразу становится очевидным.
Нет, он запускает код независимо от того, какое условие выполняется, он просто запускает другой код. 'if x> 0', тогда запустите' x'. В противном случае запустите '-x' –
Это не« правдивый и фальсифицированный оператор », а« [условный оператор] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)». – h2ooooooo
Возможный дубликат [Что означает этот символ в JavaScript?] (Http: // stackoverflow.com/questions/9549780/what-do-this-symbol-mean-in-javascript) – Quentin