|
| 1 | +В JavaScript есть специальный тип данных — **boolean** (булев тип). Он содержит только два значения: `true` (истина) и `false` (ложь). |
1 | 2 |
|
2 | | -Кроме арифметических операций со школы нам известны операции сравнения. Например, `5 > 4`. Это звучит как вопрос: «5 больше 4?». В данном случае ответ «да». В других случаях ответом может быть «нет», например, для `3 < 1`. |
| 3 | +## Операторы сравнения |
3 | 4 |
|
4 | | -Операции сравнения не имеют привязки к числам. Сравнивать можно практически всё что угодно, например, строки. Каждый раз, когда мы входим на какой-то сайт, внутри происходит сравнение введенных логина и пароля с теми, какие есть в базе. И только если они есть, нас пускают внутрь (авторизируют). |
5 | | - |
6 | | -Языки программирования адаптировали все математические операции сравнения практически в неизменном виде. Единственное серьезное отличие – операторы равенства и неравенства. В математике для этого используется обычное равно `=`, но в программировании такое встречается не часто. Во многих языках символ `=` используется для присваивания значений переменным, поэтому для сравнения взяли `==` или `===`. |
7 | | - |
8 | | -Список операций сравнения в JavaScript: |
9 | | - |
10 | | -* `<` меньше |
11 | | -* `<=` меньше или равно |
12 | | -* `>` больше |
13 | | -* `>=` больше или равно |
14 | | -* `===` равно |
15 | | -* `!==` не равно |
16 | | - |
17 | | -_Небольшая ремарка: для равенства и неравенства также существуют операторы `==` и `!=`, которые мы не будем использовать из-за потенциальной опасности. Мы поговорим об этом в будущих уроках._ |
18 | | - |
19 | | -Логическая операция типа `5 > 4` или `password === text` — это выражение, и его результат — специальное значение `true` («истина») или `false` («ложь»). Это новый для нас тип данных — boolean. Он содержит всего лишь два этих значения. |
| 5 | +Операторы сравнения возвращают булево значение: |
20 | 6 |
|
21 | 7 | ```javascript |
22 | | -const result = 5 > 4; |
23 | | -console.log(result); // => true |
24 | | -console.log('one' !== 'one'); // => false |
| 8 | +console.log(5 > 3); // => true |
| 9 | +console.log(5 < 3); // => false |
| 10 | +console.log(5 === 5); // => true |
| 11 | +console.log(5 !== 3); // => true |
25 | 12 | ``` |
26 | 13 |
|
27 | | -Наряду со строками (string), целыми и рациональными числами (number), логический тип (boolean) — это один из примитивных типов данных в JavaScript. |
28 | | - |
29 | | ---- |
30 | | - |
31 | | -Попробуем написать примитивную функцию, которая принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до года: |
32 | | - |
33 | | -```javascript |
34 | | -const isInfant = (age) => age < 1; |
35 | | -``` |
| 14 | +| Оператор | Смысл | |
| 15 | +|----------|-------| |
| 16 | +| `>` | больше | |
| 17 | +| `<` | меньше | |
| 18 | +| `>=` | больше или равно | |
| 19 | +| `<=` | меньше или равно | |
| 20 | +| `===` | строго равно | |
| 21 | +| `!==` | строго не равно | |
36 | 22 |
|
37 | | -Пользуемся тем фактом, что любая операция — это выражение, поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения `age < 1`». |
| 23 | +## Функции, возвращающие boolean |
38 | 24 |
|
39 | | -В зависимости от пришедшего аргумента, сравнение будет либо истинным (`true`), либо ложным (`false`), и `return` вернёт этот результат. |
| 25 | +Функции, возвращающие `true` или `false`, называют **предикатами**. По соглашению их называют с приставкой `is`, `has`, `can`: |
40 | 26 |
|
41 | 27 | ```javascript |
42 | | -const isInfant = (age) => age < 1; |
43 | | - |
44 | | -console.log(isInfant(3)); |
45 | | -``` |
| 28 | +function isPensioner(age) { |
| 29 | + return age >= 60; |
| 30 | +} |
46 | 31 |
|
47 | | -```textfalse``` |
48 | | - |
49 | | -А теперь проверим ребенка, которому полгода: |
50 | | - |
51 | | -```javascript |
52 | | -console.log(isInfant(0.5)); |
| 32 | +console.log(isPensioner(65)); // => true |
| 33 | +console.log(isPensioner(30)); // => false |
53 | 34 | ``` |
54 | | - |
55 | | -```texttrue``` |
0 commit comments