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.