- •Обработчики событий в JavaScript. OnBlur onChange onClick onFocus onLoad ...
- •% (Modulus/целочисленный остаток)
- •- (Унарное Отрицание)
- •Операции Присвоения
- •Операции Сравнения
- •Использование Операций Равенства
- •Обратная Совместимость
- •Арифметические Операции
- •% (Modulus/целочисленный остаток)
- •- (Унарное Отрицание)
- •Побитовые Операции
- •Побитовые Логические Операции
- •Операции Побитового Сдвига
- •Логические Операции
- •Обратная Совместимость
- •Примеры
- •Строковые Операции
- •Синтаксис
- •Параметры
- •Описание
- •Синтаксис
- •Параметры
- •Описание
- •Примеры
- •Синтаксис
- •Примеры
Логические Операции
Логические операции обычно выполняются над Булевыми (логическими) значениями; при этом возвращается Булево значение. Однако операции && и || в действительности возвращают значение одного из специфицированных операндов, поэтому, если эти операции используются с не-Булевыми значениями, они могут возвратить не-Булево значение.
Реализованы в |
JavaScript 1.0 |
Версия ECMA |
ECMA-262 |
Логические операции описаны в следующей таблице.
Таблица 5.5 Логические Операции
Операция |
Использование |
Описание |
&& |
expr1 && expr2 |
(Логическое AND/И) Возвращает expr1, если может быть конвертировано в false; иначе возвращает expr2. Таким образом, при использовании с Булевыми значениями, && возвращает true, если оба операнда true; иначе возвращает false. |
|| |
expr1 || expr2 |
(Логическое OR/ИЛИ) Возвращает expr1, если может быть конвертировано в false; иначе возвращает expr2. Таким образом, при использовании с Булевыми значениями, || возвращает true, если хотя бы один из операндов true; если оба false, возвращает false. |
! |
!expr |
(Логическое NOT/НЕ) Возвращает false, если единственный операнд может быть конвертирован в true; иначе возвращает true. |
Примерами выражений, которые могут быть конвертированы в false, являются те, которые вычисляются в null, 0, пустую строку ("") или undefined.
Хотя операции && и || могут использоваться с не-Булевыми операндами, они (операции) считаются всё же Булевыми, поскольку их return-значения всегда могут быть конвертированы в Boolean.
Сокращённый цикл вычислений. Поскольку логические выражения вычисляются слева направо, они проверяются на возможность "сокращённого/short-circuit" вычисления по следующим правилам:
false && anything сокращённо вычисляется в false.
true || anything сокращённо вычисляется в true.
Правила логики гарантируют, что эти вычисления всегда будут корректны. Обратите внимание, что часть anything вышеприведённых выражений не вычисляется, поэтому она не оказывает никакого действия на результат.
Обратная Совместимость
JavaScript 1.0 и 1.1. Операции && и || работают так:
Операция |
Поведение |
&& |
Если первый операнд (expr1) может быть конвертирован в false, операция && возвращает false, а не значение выражения expr1. |
|| |
Если первый операнд (expr1) может быть конвертирован в true, операция || возвращает true, а не значение выражения expr1. |
Примеры
Вот примеры операции && (логическое И).
a1=true && true // t && t возвращает true a2=true && false // t && f возвращает false a3=false && true // f && t возвращает false a4=false && (3 == 4) // f && f возвращает false a5="Cat" && "Dog" // t && t возвращает Dog a6=false && "Cat" // f && t возвращает false a7="Cat" && false // t && f возвращает false
Далее идут примеры операции || (логическое ИЛИ).
o1=true || true // t || t возвращает true o2=false || true // f || t возвращает true o3=true || false // t || f возвращает true o4=false || (3 == 4) // f || f возвращает false o5="Cat" || "Dog" // t || t возвращает Cat o6=false || "Cat" // f || t возвращает Cat o7="Cat" || false // t || f возвращает Cat
А это примеры операции ! (логическое НЕ).
n1=!true // !t возвращает false n2=!false // !f возвращает true n3=!"Cat" // !t возвращает false