Проверка числа на четность в JavaScript: устойчивый код
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы определить, является ли число чётным или нечётным, воспользуйтесь оператором %
, который позволяет получить остаток от деления. Четные числа при делении на 2
дают остаток 0
, вот простой пример:
const isEven = number => number % 2 === 0;
// Пример использования:
isEven(2); // true, так как 2 – это четное число.
isEven(3); // false, поскольку 3 – нечетное число.
Проверка входных данных и обработка исключений
В реальных условиях перед выполнением вычислений всегда стоит проверять входные данные. Это предотвращает ошибки, связанные с некорректным вводом:
const isValidNumber = n => Number.isFinite(parseFloat(n));
const isEven = n => isValidNumber(n) && n % 2 === 0; // Проверяем валидность числа перед проверкой на четность.
Не забывайте, что отрицательные числа также подчиняются этим правилам. Использование модуля числа помогает сделать код более понятным:
const isOdd = n => isValidNumber(n) && Math.abs(n) % 2 === 1; // Проверяем на нечетность, не обращая внимания на знак.
Обработка строковых входных данных
Иногда числа представляются в виде строк. В таких случаях следует удалять пробелы и преобразовывать строку в числовой формат:
const isEvenString = str => {
const number = Number(str.trim()); // Удаляем пробелы по краям.
return Number.isInteger(number) && number % 2 === 0;
};
Ускорение вычислений
Для приложений, требующих высокой производительности, полезно использовать побитовый оператор И &
, позволяющий быстро проверять четность:
const isEvenBitwise = n => (n & 1) === 0; // Быстрая проверка на четность с помощью побитового оператора.
Помните, что в JavaScript побитовые операции представляют числа в виде 32-битных целых, что может влиять на результаты при работе с большими или дробными числами.
Визуализация
Часто проверку на четность и нечетность удобно представлять себе как танцующие пары:
Четное число (2, 4, 6...): 🕺👯♂️🕺👯♂️ – **Идеальная пара**
В таком случае все четно, все гармонично и симметрично.
Нечетное число (1, 3, 5...): 🕺👯♂️🕺👯♂️🚶 – **Одинокий гость**
Обычно всегда остается одно число без пары. Это как неожиданный сюжетный поворот в художественном произведении.
Регулярные выражения приходят на помощь
В случае строк, содержащих числа, регулярные выражения станут надежным способом определения:
const isEvenRegex = str => /^-?\d*[02468]$/.test(str);
const isOddRegex = str => /^-?\d*[13579]$/.test(str); // Регулярные выражения помогут нам установить факт.
Эти выражения корректно обрабатывают как положительные, так и отрицательные числа.
Специфические случаи чисел
Иногда специальные числа, например, бесконечность, могут вести себя неожиданным образом:
isEven(Infinity); // false, бесконечность не подходит под обычное представление о четности.
Желательно учитывать такие особые ситуации:
const isEven = n => n !== Infinity && n !== -Infinity && n % 2 === 0;
Кросс-браузерная совместимость
Браузеры могут интерпретировать JavaScript по-разному, поэтому важно проверять работоспособность функций в различных браузерных средах. Это особенно актуально при работе с новшествами ECMAScript, которые могут привести к неожиданным результатам.
Полезные материалы
- Выражения и операторы – JavaScript | MDN — подробный обзор выражений и операторов в JavaScript.
- Проверка значения на чётность или нечётность – Stack Overflow — обсуждение и решения сообщества по данному вопросу.
- JavaScript: Сравнительные и логические операторы — основы сравнительных и логических операторов в JavaScript.
- Сравнения — детальное объяснение принципов сравнения в JavaScript.
- Изучаем JavaScript | Codecademy — интерактивные курсы по JavaScript, начиная от фундаментальных основ, заканчивая сложными темами.
(Примечание: Некоторые названия разделов были изменены для лучшего соответствия содержанию ссылок и их важности в данном контексте.)