JavaScript Сравнение
Операторы сравнения
Операторы сравнения используются для сравнения двух значений.
Операторы сравнения всегда возвращают true или false.
Учитывая, что x = 5, в таблице ниже объясняются операторы сравнения:
| Оператор | Описание | Сравнение | Вернёт | |
|---|---|---|---|---|
| == | равно | x == 8 | false | Попробуй это » |
| x == 5 | true | Попробуй это » | ||
| x == "5" | true | Попробуй это » | ||
| === | одинаковое значение и одинаковый тип | x === 5 | true | Попробуй это » |
| x === "5" | false | Попробуй это » | ||
| != | не равно | x != 8 | true | Попробуй это » |
| !== | не равно значению или не равно типу | x !== 5 | false | Попробуй это » |
| x !== "5" | true | Попробуй это » | ||
| x !== 8 | true | Попробуй это » | ||
| > | больше чем | x > 8 | false | Попробуй это » |
| < | меньше чем | x < 8 | true | Попробуй это » |
| >= | больше чем или равно | x >= 8 | false | Попробуй это » |
| <= | меньше чем или равно | x <= 8 | true | Попробуй это » |
Операторы сравнения можно использовать в условных операторах для сравнения значений и действий в зависимости от результата:
if (age < 18) text = "Слишком молодой, чтобы покупать алкоголь";
Вы узнаете больше об использовании условных операторов в разделе if...else этого учебника.
JavaScript Сравнение строк
Все вышеупомянутые операторы сравнения можно также использовать со строками:
Обратите внимание, что строки сравниваются в алфавитном порядке:
Сравнение разных типов
Сравнение данных разных типов может дать неожиданные результаты.
При сравнении строки с числом JavaScript преобразует строку в число. Пустая строка преобразуется в 0. Нечисловая строка преобразуется в NaN, которое всегда false.
| Случай | Значение | Попробуй |
|---|---|---|
| 2 < 12 | true | Попробуй это » |
| 2 < "12" | true | Попробуй это » |
| 2 < "John" | false | Попробуй это » |
| 2 > "John" | false | Попробуй это » |
| 2 == "John" | false | Попробуй это » |
| "2" < "12" | false | Попробуй это » |
| "2" > "12" | true | Попробуй это » |
| "2" == "12" | false | Попробуй это » |
При сравнении двух строк "2" будет больше, чем "12".
В алфавитном порядке 1 меньше чем 21.
Чтобы обеспечить правильный результат, переменные следует превратить в правильный тип перед сравнением:
Пример
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}
Попробуйте сами »
