Javascript Shorthand - Что такое '||' Средство оператора при использовании в задании?
Я просто просмотрел этот ответ, и я заметил следующую строку кода javascript:
hrs = (hrs - 12) || 12;
Мой вопрос:
Что означает '||' оператор означает, когда используется в задании?
Ответ 1
В этом случае код назначает 12 на hrs, если hrs-12 = 0 (поскольку JavaScript видит это, 0 = false).
В более общем смысле, он присваивает последнее значение переменной, если первое значение оценивается как 0, пустая строка, null, undefined и т.д.
Ответ 2
Это всегда означает одно и то же: логическое ИЛИ
Это общий трюк, который использует литье типов. Многие небулевые выражения оцениваются как false. Это то же самое, что и:
hrs = (hrs-12)
if(!hrs){
hrs = 12;
}
И if() работает, потому что 0 отличает false. Он также имел дело с переменными undefined:
function foo(optionalValue){
var data = optionalValue || "Default value";
}
foo();
foo("My value");
Ответ 3
В случае, если hrs-12 оценивается как 0, человеку требуется hrs назначить 12, поскольку 0 не подходит.
Так как 0 оценивается как false, выражение становится false || 12, и в этом случае 12 будет выбрано, так как оно правдиво.
Ответ 4
Это означает: "Если первая половина выражения ложна, то вместо этого используйте вторую половину".
Практически в этом примере это означает, что hrs будет установлен в hours-12, если только hours-12 не равен нулю, и в этом случае он будет hrs установлен на 12.
Ответ 5
Это означает "короткое замыкание или" . То есть если первая часть выражения ложна, используйте вместо этого вторую. Wikipedia имеет статью об этом с синтаксисом для нескольких языков.
Ответ 6
Это означает, что если hrs-12 оценивается как false (false, null, undefined, NaN, '', 0), тогда 12 будет назначено hrs.