Логические операторы
Логические операторы обычно используются для выполнения операций булевой алгебры. Они часто применяются в сочетании с операторами сравнения для осуществления сложных сравнений с участием нескольких переменных в инструкциях if, while и for.
Логическое И (&&).При использовании с логическими операндами оператор && выполняет операцию логического И над двумя значениями: он возвращает true тогда и только тогда, когда первый и второй операнды равны true. Если один или оба операнда равны false, оператор возвращает false.
Реальное поведение этого оператора несколько сложнее. Он начинает работу с вычисления левого операнда. Если получившееся значение может быть преобразовано в false (если левый операнд равен null, 0, "" или undefined), оператор возвращает значение левого выражения. В противном случае оператор вычисляет правый операнд и возвращает значение этого выражения.
Следует отметить, что в зависимости от значения левого выражения этот оператор либо вычисляет, либо не вычисляет правое выражение. Иногда встречается код, намеренно использующий эту особенность оператора &&. Так, следующие две строки JavaScript-кода дают эквивалентные результаты:
if (a == b) stop();
(a == b) && stop();
Логическое ИЛИ (||).При использовании с логическими операндами оператор || выполняет операцию «логическое ИЛИ» над двумя значениями: он возвращает true, если первый или второй операнд (или оба операнда) равен true. Если оба операнда равны false, он возвращает false.
Хотя оператор || чаще всего применяется просто как оператор «логическое ИЛИ», он, как и оператор &&, ведет себя более сложным образом. Его работа начинается с вычисления левого операнда. Если значение этого выражения может быть преобразовано в true, возвращается значение левого выражения. В противном случае оператор вычисляет правый операнд и возвращает значение этого выражения.
Таблица 3 Значения логических выражений.
X | Y | X && Y | X || Y |
true true false false | true false true false | true false false false | true true true false |
Логическое НЕ (!).Оператор ! представляет собой унарный оператор, помещаемый перед одиночным операндом. Оператор инвертирует значение своего операнда. Так, если переменная a имеет значение true (или представляет собой значение, преобразуемое в true), то выражение !a имеет значение false. И если выражение p && q равно false (или значению, преобразуемому в false), то выражение !(p && q) равно true.
Обратите внимание, что можно преобразовать значение любого типа в логическое, применив этот оператор дважды: !!x.
Дата добавления: 2016-01-09; просмотров: 708;