Шаг 9.
Основы JavaScript.
Логические операции

    На этом шаге мы рассмотрим особенности использования логических операций.

    Логические операции, сводка которых приведена в таблице 1, оперируют только с логическими операндами и используются, чаще всего, при создании сложных логических выражений, применяемых в условных и циклических конструкциях.

Таблица 1. Логические операции
Операция Результат
|| Логическое ИЛИ
&& Логическое И
! Логическое НЕ

    Рассмотрим примеры использования логических операций.

<HTML>
<HEAD>
<TITLE>Логические операции</TITLE>
<SCRIPT  LANGUAGE="JavaScript">
<!--
  var1 = "Кит"; 
  var2 = "Кот"; 
  var3 = false;
  a = var1 && var2; //результат 'Кот'
  b = var2 && var3; //результат false
  c = var1 || var2; //результат 'Кит'
  d = !var1;        //результат 'false'
  e = !var3;        //результат 'true'
  alert ("a = "+a+"\nb = "+b+"\nc = "+c+"\nd = "+d+"\ne = "+e);
//-->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Текст этого документа можно взять здесь.

    Результат работы скрипта приведен на рисунке 1.


Рис.1. Использование логических операций

    Опишем результаты работы этого скрипта. Однако сразу отметим, что логические операции могут использоваться не только для создания сложных условий (с ними мы познакомимся при изучении ветвлений и циклов), но и при конструировании выражений как, например, арифметические операторы.

    Начнем с последнего оператора присваивания. Вам известно, что отрицание "лжи" есть "истина" и наоборот. Предпоследнее присваивание говорит нам о том, что в JavaScript "ложью" являются значения null (пусто), 0, пустая строка ("") или undefined (неопределенное значение). Значение переменной var1 отлично от вышеперечисленных, поэтому оно рассматривается как "истина", а отрицание "истины" есть "ложь".

    Обратимся теперь к первым трем оператором присваивания. Наиболее простым из них является конструкция b = var2 && var3;: так как один из операндов есть "ложь" и используется операция логическое И, то результат, естественно, будет "ложь".

    Первый оператор присваивания JavaScript выполняет, пользуясь следующим правилом: операция "Логическое И" возвращает значение первого операнда, если его можно конвертировать в "ложь"; иначе, возвращает значение второго операнда.

    Применим это правило к первому оператору присваивания, но сначала вспомним, что "ложью" в JavaScript являются значения "пусто", 0, пустая строка и неопределенное значение. Первый операнд в данном присваивании нельзя конвертировать в "ложь", поэтому переменная a получает в качестве своего значения значение второго операнда.

    Для выполнения третьего оператора присваивания воспользуйтесь следующим правилом: операция "Логическое ИЛИ" возвращает значение первого операнда, если его можно конвертировать в "истину"; иначе, возвращает значение второго операнда.


Проведите аналогичные рассуждения для третьего оператора присваивания.



    Замечание. Напоминаем, что эти правила используются только тогда, когда ни один из операндов не является логическим. Если хотя бы один из операндов имеет значение логического типа, то операции || и && выполняются обычным образом.

Измените последний скрипт следующим образом и объясните результаты:

    На следующем шаге мы рассмотрим функции в JavaScript.




Предыдущий шаг Содержание Следующий шаг