Проверка числа на четность в JavaScript: устойчивый код

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы определить, является ли число чётным или нечётным, воспользуйтесь оператором %, который позволяет получить остаток от деления. Четные числа при делении на 2 дают остаток 0, вот простой пример:

JS
Скопировать код
const isEven = number => number % 2 === 0;

// Пример использования:
isEven(2); // true, так как 2 – это четное число.
isEven(3); // false, поскольку 3 – нечетное число.
Кинга Идем в IT: пошаговый план для смены профессии

Проверка входных данных и обработка исключений

В реальных условиях перед выполнением вычислений всегда стоит проверять входные данные. Это предотвращает ошибки, связанные с некорректным вводом:

JS
Скопировать код
const isValidNumber = n => Number.isFinite(parseFloat(n));

const isEven = n => isValidNumber(n) && n % 2 === 0; // Проверяем валидность числа перед проверкой на четность.

Не забывайте, что отрицательные числа также подчиняются этим правилам. Использование модуля числа помогает сделать код более понятным:

JS
Скопировать код
const isOdd = n => isValidNumber(n) && Math.abs(n) % 2 === 1; // Проверяем на нечетность, не обращая внимания на знак.

Обработка строковых входных данных

Иногда числа представляются в виде строк. В таких случаях следует удалять пробелы и преобразовывать строку в числовой формат:

JS
Скопировать код
const isEvenString = str => {
    const number = Number(str.trim()); // Удаляем пробелы по краям.
    return Number.isInteger(number) && number % 2 === 0;
};

Ускорение вычислений

Для приложений, требующих высокой производительности, полезно использовать побитовый оператор И &, позволяющий быстро проверять четность:

JS
Скопировать код
const isEvenBitwise = n => (n & 1) === 0; // Быстрая проверка на четность с помощью побитового оператора.

Помните, что в JavaScript побитовые операции представляют числа в виде 32-битных целых, что может влиять на результаты при работе с большими или дробными числами.

Визуализация

Часто проверку на четность и нечетность удобно представлять себе как танцующие пары:

Markdown
Скопировать код
Четное число (2, 4, 6...): 🕺👯‍♂️🕺👯‍♂️ – **Идеальная пара**

В таком случае все четно, все гармонично и симметрично.

Markdown
Скопировать код
Нечетное число (1, 3, 5...): 🕺👯‍♂️🕺👯‍♂️🚶 – **Одинокий гость**

Обычно всегда остается одно число без пары. Это как неожиданный сюжетный поворот в художественном произведении.

Регулярные выражения приходят на помощь

В случае строк, содержащих числа, регулярные выражения станут надежным способом определения:

JS
Скопировать код
const isEvenRegex = str => /^-?\d*[02468]$/.test(str);
const isOddRegex = str => /^-?\d*[13579]$/.test(str); // Регулярные выражения помогут нам установить факт.

Эти выражения корректно обрабатывают как положительные, так и отрицательные числа.

Специфические случаи чисел

Иногда специальные числа, например, бесконечность, могут вести себя неожиданным образом:

JS
Скопировать код
isEven(Infinity); // false, бесконечность не подходит под обычное представление о четности.

Желательно учитывать такие особые ситуации:

JS
Скопировать код
const isEven = n => n !== Infinity && n !== -Infinity && n % 2 === 0;

Кросс-браузерная совместимость

Браузеры могут интерпретировать JavaScript по-разному, поэтому важно проверять работоспособность функций в различных браузерных средах. Это особенно актуально при работе с новшествами ECMAScript, которые могут привести к неожиданным результатам.

Полезные материалы

  1. Выражения и операторы – JavaScript | MDN — подробный обзор выражений и операторов в JavaScript.
  2. Проверка значения на чётность или нечётность – Stack Overflow — обсуждение и решения сообщества по данному вопросу.
  3. JavaScript: Сравнительные и логические операторы — основы сравнительных и логических операторов в JavaScript.
  4. Сравнения — детальное объяснение принципов сравнения в JavaScript.
  5. Изучаем JavaScript | Codecademy — интерактивные курсы по JavaScript, начиная от фундаментальных основ, заканчивая сложными темами.

(Примечание: Некоторые названия разделов были изменены для лучшего соответствия содержанию ссылок и их важности в данном контексте.)