JavaScript предлагает мощные возможности для сравнения чисел, что является важнейшим аспектом создания динамичных и отзывчивых приложений. Это руководство изучает основные методы эффективного сравнения числовых значений.
Содержание
- Операторы сравнения
- Логические операторы
- Цепочки сравнений
- Обработка особых случаев (NaN, Infinity)
- Заключение
Операторы сравнения
JavaScript предоставляет шесть основных операторов сравнения для оценки числовых соотношений. Эти операторы возвращают булево значение (true
или false
).
Оператор | Описание | Пример | Результат |
---|---|---|---|
=== |
Строгое равенство (проверяет и значение, и тип) | 5 === 5 |
true |
!== |
Строгое неравенство | 5 !== "5" |
true |
> |
Больше чем | 10 > 5 |
true |
< |
Меньше чем | 5 < 10 |
true |
>= |
Больше или равно | 10 >= 10 |
true |
<= |
Меньше или равно | 5 <= 10 |
true |
Почему строгое равенство (===
)? Использование строгого равенства, как правило, рекомендуется для предотвращения непредвиденного приведения типов. Оператор нестрогого равенства (==
) выполняет преобразование типов перед сравнением, что может привести к ошибкам.
5 == "5"; // true (происходит приведение типов)
5 === "5"; // false (строгое равенство; типы различны)
Логические операторы
Логические операторы комбинируют несколько сравнений, создавая сложные условные операторы.
Оператор | Описание | Пример | Результат (если num1 = 10, num2 = 5) |
---|---|---|---|
&& |
Логическое И (оба условия должны быть истинными) | (num1 > 5) && (num2 < 10) |
true |
|| |
Логическое ИЛИ (хотя бы одно условие должно быть истинным) | (num1 0) |
true |
! |
Логическое НЕ (инвертирует булево значение) | !(num1 === num2) |
true |
let score = 85;
if (score >= 90 && score = 80 && score < 90) {
console.log("Оценка B");
} else {
console.log("Ниже оценки B");
}
Цепочки сравнений
Для более чистого кода используйте цепочки сравнений, когда проверяете, попадает ли число в заданный диапазон:
let age = 25;
if (18 <= age && age < 65) {
console.log("Взрослый");
}
Обработка особых случаев (NaN, Infinity)
NaN
(Not a Number) и Infinity
требуют особого внимания:
NaN
никогда не равен самому себе:NaN === NaN
равноfalse
. ИспользуйтеisNaN()
для проверки наNaN
.Infinity
и-Infinity
имеют специфическое поведение при сравнении.
isNaN(Number("hello")); // true
Infinity > 1000; // true
-Infinity < -1000; // true
Заключение
Освоение сравнения чисел в JavaScript является фундаментальным для создания надежных приложений. Эффективно используя операторы сравнения и логические операторы, и понимая особые случаи, вы можете создавать высокофункциональный и надежный код.