Подтвердить что ты не робот

Javascript Shorthand - Что такое '||' Средство оператора при использовании в задании?

Я просто просмотрел этот ответ, и я заметил следующую строку кода javascript:

hrs = (hrs - 12) || 12;

Мой вопрос:

Что означает '||' оператор означает, когда используется в задании?

4b9b3361

Ответ 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.