с собой к обеду фрукты, причем вам неважно, будет это яблоко, или
апельсин, или и то и другое. С помощью JavaScript можно проверить,
есть ли у вас хотя бы один из этих плодов:
Has apple —
var hasApple = true;
есть яблоко
var hasOrange = false;
Has orange —
hasApple || hasOrange;
есть апельсин
true
42 Часть I. Основы
Выражение hasApple || hasOrange даст true, если либо
hasApple («взяли яблоко?»), либо hasOrange («взяли апельсин?»), либо
обе эти переменные имеют значение true. Однако если
false, выражение даст false (то есть у вас с собой нет ни одного
фрукта).
! (НЕ)
Оператор ! означает «не» — так его и называйте. Используйте этот опе-
ратор, чтобы превратить false в true или, наоборот, true в false. Это
полезно для работы со значениями-противоположностями. Например:
Is weekend —
выходной
var isWeekend = true;
Need to shower
var needToShowerToday = !isWeekend;
today — нужно
needToShowerToday;
принять душ
false
сегодня
В этом примере мы установили переменную isWeekend («сейчас
выходной?») в true. Затем мы дали переменной needToShowerToday
(«сегодня нужно принять душ?») значение !isWeekend. Оператор ! пре-
образует значение в противоположное — то есть, если isWeekend равно
true, !isWeekend даст нам не true (то есть false). Соответственно,
запрашивая значение needToShowerToday, мы получаем false
(сегодня выходной, так что мыться совсем не обязательно).
Поскольку needToShowerToday равно false, !needToShowerToday
даст true:
needToShowerToday;
false
!needToShowerToday;
true
Иными словами, то, что вам не обязательно
душ, — истина (true).
Совмещение логических операторов
Операторы дают больше возможностей, если использовать их совместно.
Допустим, вам нужно идти в школу, если сегодня не выходной,
няли душ,
JavaScript проверить, выполняются ли все эти условия:
var isWeekend = false;
var hadShower = true;
var hasApple = false;
2. Типы данных и переменные 43
var hasOrange = true;
Should go
var shouldGoToSchool = !isWeekend && hadShower && (hasApple ||
to school —
hasOrange);
нужно идти
shouldGoToSchool;
в школу
true
В данном случае сегодня не выходной, вы приняли душ, у вас нет
с собой яблока, зато есть апельсин — значит, нужно идти в школу.
Выражение hasApple || hasOrange записано в скобках, поскольку
нам важно убедиться, что эта проверка выполнена в первую очередь.
Точно так же как JavaScript выполняет умножение прежде сложения,
в логических выражениях он выполняет && прежде ||.
Сравнение чисел с помощью булевых значений
Булевы значения можно использовать для проверки чисел, если эта
проверка подразумевает простой ответ: да или нет. Например, пред-
ставьте, что вы работаете в парке развлечений, где один из аттрак-
ционов имеет ограничение: туда допускаются посетители ростом
не менее 150 см (иначе они могут вывалиться из кабинки!). Когда
кто-нибудь хочет прокатиться, он сообщает свой рост, и вам нужно
понять, больше названное число или меньше.
Больше
Чтобы узнать, больше ли одно число, чем другое, нужно использовать
оператор «больше» (>). Например, для проверки, что рост посети-
теля (155 см) больше, чем ограничение по росту (150 см), мы можем
задать переменной height (рост посетителя) значение 155, а пере-
менной heightRestriction (ограничение по росту) значение 150,
а затем использовать оператор > для сравнения двух переменных:
var height = 155;
Height —
var heightRestriction = 150;
высота
height > heightRestriction;
Height
true
restriction —
ограничение
по росту
Введя height > heightRestriction, мы просим JavaScript показать
нам, больше ли первое значение, чем второе, или нет. В данном случае
посетитель достаточно высок!
Но что если рост посетителя в точности равен 150 см?
var height = 150;
var heightRestriction = 150;
height > heightRestriction;
false
44 Часть I. Основы
Нет, посетитель недостаточно высок! Хотя если ограничение
по росту — 150 см, наверное, стоит пускать и тех, чей рост в точности
равен 150 см? Это нужно исправить. К счастью, в JavaScript есть еще
один оператор, >=, что означает «больше или равно».
var height = 150;
var heightRestriction = 150;
height >= heightRestriction;
true
Ну вот, теперь лучше — 150 удовлетворяет условию «больше или
равно 150».
Меньше
Оператор, противоположный «больше» (>), зовется оператором «меньше» (<).
Он пригодится, если аттракцион предназначен только для маленьких
детей. Например, пусть рост посетителя равен 150 см, но по правилам
аттракциона на него допускаются посетители ростом не более 120 см:
var height = 150;
var heightRestriction = 120;
height < heightRestriction;
false
Мы хотим убедиться, что рост посетителя
и поэтому используем <. Поскольку 150 не меньше 120, ответом будет
false (человек ростом 150 см слишком высок для этого аттракциона).
И, как вы, наверное, уже догадались, есть оператор <=, что означает
«меньше или равно».
var height = 120;
var heightRestriction = 120;
height <= heightRestriction;
true
Посетителю, рост которого равен 120 см, вход все еще разрешен.
Равно
Чтобы проверить два числа на точное равенство, используйте тройной знак