Читаем JavaScript для детей полностью

с собой к обеду фрукты, причем вам неважно, будет это яблоко, или

апельсин, или и то и другое. С помощью 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 см, вход все еще разрешен.

Равно

Чтобы проверить два числа на точное равенство, используйте тройной знак

Перейти на страницу:

Похожие книги