Синтаксис JavaScript Справочник JavaScript Коды клавиш Строгий режим

JavaScript: Логические операторы

Оператор Тип оператора А О Типы значений
! …
… && …
… || …
Логическое НЕ (инверсия)
Логическое И
Логическое ИЛИ
справа налево
слева направо
слева направо
1
2
2
любое→булево
любое, любое→любое
любое, любое→любое

Оператор ! (логическое НЕ) преобразует (если необходимо) значение своего операнда в булево значение, затем инвертирует это значение в противоположное и возвращает полученное в результате инвертирования булево значение:

var a = true, b = false;
alert(!a);   // false
alert(!b);   // true

Если оператор ! дважды применить к операнду, то значение будет преобразовано в его логический эквивалент:

var a = 1, b = 0;
alert(!!a);   // true. Тоже самое, что и Boolean(a);
alert(!!b);   // false. Тоже самое, что и Boolean(b);

Оператор && (логическое И) сначала вычисляет значение левого операнда. Если левый операнд имеет значение false или значение, которое может быть преобразовано в false, то возвращается значение левого операнда, при этом значение правого операнда вычисляться не будет:

var y = 1;
var x = 0 && ++y;   // ++y не будет вычисляться

alert("x: " + x);   // 0
alert("y: " + y);   // 1

Если левый операнд имеет значение true или значение, которое может быть преобразовано в true, оператор переходит к вычислению значения правого операнда, и возвращает значение правого операнда:

var x = 1 && 2;
var y = 1 && 0;

alert("x: " + x);   // 2
alert("y: " + y);   // 0

Оператор || (логическое ИЛИ) сначала вычисляет значение левого операнда. Если левый операнд имеет значение true или значение, которое может быть преобразовано в true, то возвращается значение левого операнда, при этом значение правого операнда вычисляться не будет:

var y = 1;
var x = 1 || ++y;   // ++y не будет вычисляться

alert("x: " + x);   // 1
alert("y: " + y);   // 1

Если левый операнд имеет значение false или значение, которое может быть преобразовано в false, оператор переходит к вычислению значения правого операнда, и возвращает значение правого операнда:

var x = 0 || 2;
var y = null || 0;

alert("x: " + x);   // 2
alert("y: " + y);   // 0
    
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2016 © puzzleweb.ru

Реклама на сайте | Обратная связь