
В JavaScript проверка числа на четность сводится к вычислению остатка от деления на 2. Если результат равен 0, то число четное, иначе – нечетное. Такой способ основан на работе оператора % (остаток от деления).
Пример базовой проверки:
const isEven = (n) => n % 2 === 0;
Такой метод корректно работает с целыми числами. При этом нужно учитывать, что для отрицательных значений оператор % в JavaScript возвращает отрицательный остаток, но проверка на равенство 0 все равно дает правильный результат.
Если входные данные могут содержать не только числа, важно перед проверкой использовать Number.isInteger(), чтобы избежать ложных результатов:
if (Number.isInteger(value)) { console.log(value % 2 === 0); }
Использование оператора % для проверки четности

Оператор % в JavaScript возвращает остаток от деления. Если результат равен нулю при делении числа на 2, то число четное, иначе – нечетное.
function isEven(num) {
return num % 2 === 0;
}
Ключевые моменты при использовании %:
- Для положительных чисел результат соответствует классическому определению четности.
- Для отрицательных чисел правило сохраняется:
-4 % 2 === 0,-5 % 2 === -1, что также позволяет проверять четность. - Если число не является целым, например
4.2 % 2, результат будет не равен нулю, поэтому проверка покажет «нечетное».
Практические рекомендации:
- Используйте
=== 0, чтобы избежать приведения типов. - Перед проверкой убедитесь, что значение является числом:
Number.isInteger(num). - Для работы с большими массивами применяйте
filterилиmap, используя выражениеvalue % 2 === 0.
Как работает остаток от деления при отрицательных числах
В JavaScript оператор % возвращает остаток с сохранением знака делимого. Это значит, что выражение -7 % 3 даст результат -1, а не 2, как в некоторых других языках.
Пример: 7 % 3 === 1, -7 % 3 === -1, 7 % -3 === 1, -7 % -3 === -1. Знак всегда совпадает со знаком первого числа.
Если требуется получить остаток в пределах положительного диапазона, используйте корректировку: ((a % b) + b) % b. Для числа -7 и делителя 3 результат будет 2, что удобно при работе с индексами массивов или циклами.
Следует различать операции % и Math.floorDiv (в других языках), так как в JavaScript нет встроенного оператора целочисленного деления. Поэтому для предсказуемых результатов с отрицательными значениями используйте приведённую выше формулу.
Проверка четности с помощью побитового оператора &
В JavaScript для определения четности можно использовать оператор &. Число четное, если младший бит равен 0. Проверка выполняется так: if (num & 1) { ... }. Результат выражения num & 1 будет равен 0 для четных чисел и 1 для нечетных.
Пример: console.log(4 & 1); // 0, console.log(7 & 1); // 1. Такой подход работает быстрее, чем использование остатка от деления %, особенно при обработке больших объемов данных.
Для лаконичного условия можно записать: const isEven = (num & 1) === 0;. Это выражение возвращает true для четных значений и false для нечетных.
Почему проверка через деление на 2 не подходит

Использование операции деления с последующим сравнением результата часто приводит к неточностям. Например, при проверке числа на четность через num / 2 === Math.floor(num / 2) создаются дополнительные вычисления и риск ошибок при работе с нецелыми значениями.
В JavaScript оператор деления всегда возвращает число с плавающей точкой. Это значит, что даже при делении целых чисел приходится использовать функции округления, что снижает производительность и делает код менее читаемым. При работе с большими массивами или потоками данных такие операции увеличивают время выполнения.
Сравнение методов проверки:
| Метод | Пример | Минусы |
|---|---|---|
| Через деление | num / 2 === Math.floor(num / 2) |
Дополнительное округление, возможные ошибки с дробными числами, избыточные операции |
| Через остаток | num % 2 === 0 |
Нет лишних вычислений, читаемость выше |
Поэтому для проверки четности всегда предпочтительнее использовать оператор остатка от деления, так как он работает корректно с целыми числами и требует минимальных ресурсов.
Создание функции isEven для повторного использования
Для удобства лучше вынести проверку числа на четность в отдельную функцию. Это позволит вызывать её в разных частях программы без дублирования кода.
Простейший вариант:
function isEven(num) {
return num % 2 === 0;
}
Функция возвращает true, если число четное, и false, если нечетное. Такой подход делает код читаемым и сокращает вероятность ошибок при повторных проверках.
При необходимости можно добавить проверку типа аргумента, чтобы избежать некорректных вызовов:
function isEven(num) {
if (typeof num !== 'number') {
throw new TypeError('Аргумент должен быть числом');
}
return num % 2 === 0;
}
Используя isEven, можно легко проверять массивы чисел, фильтровать данные или строить условия в циклах и функциях.
Обработка нечисловых значений при проверке
В JavaScript проверка на четность с помощью оператора `%` применима только к числам. Если переменная содержит строку, объект или `null`, выражение `value % 2` может вернуть `NaN` или вызвать непредсказуемое поведение.
Для безопасной проверки сначала приводите значение к числу с помощью `Number(value)` или `parseInt(value, 10)`. После преобразования следует проверять результат на `NaN`, используя функцию `isNaN()`. Пример: `if (!isNaN(num) && num % 2 === 0)`.
Строки, содержащие числа с пробелами или знаками, корректно преобразуются с `Number()`, но строки с буквами или смешанным содержимым приводят к `NaN`. Для обработки таких случаев рекомендуется использовать регулярные выражения для фильтрации допустимых форматов, например: `/^\s*-?\d+\s*$/`.
Булевы значения автоматически приводятся к 0 (`false`) и 1 (`true`) при числовом контексте. Для объектов и массивов, не содержащих одиночное число, результат приведения к числу будет `NaN`, что требует дополнительной проверки.
Рекомендуется выделять отдельную функцию для проверки четности, которая сначала проверяет тип и корректность числа, чтобы исключить ложные срабатывания при передаче нечисловых данных. Например:
function isEven(value) {
const num = Number(value);
return !isNaN(num) && num % 2 === 0;
}
Такой подход снижает вероятность ошибок и позволяет надежно работать с различными входными данными, включая строки и булевы значения, сохраняя точность проверки четности.
Примеры практического применения проверки четности
Проверка четности чисел в JavaScript используется в задачах, где требуется различать данные по четности для логики обработки, распределения или фильтрации.
- Фильтрация массивов: Например, можно быстро отделить четные числа от нечетных для статистического анализа или подготовки отчетов. Использование метода
filter()с проверкойnum % 2 === 0позволяет получить массив только четных значений. - Визуальное оформление таблиц: В генерации HTML-таблиц или списков можно подсвечивать четные строки другим цветом для лучшей читаемости. Проверка четности индекса строки
i % 2 === 0упрощает добавление CSS-классов. - Построение алгоритмов игры: В играх с чередующимися ходами можно использовать четность номера хода для определения, чей ход: четное число – ход первого игрока, нечетное – второго.
- Оптимизация циклов: При обработке больших массивов можно выполнять операции только над четными индексами или значениями для снижения нагрузки, например, суммировать каждые вторые элементы.
- Финансовые расчеты: В бухгалтерии и аналитике иногда применяют проверку четности для распределения платежей или подсчета четных/нечетных транзакций.
Реализация в коде выглядит так:
- Проверка отдельного числа:
- Фильтрация массива четных чисел:
- Применение в цикле для обработки каждого второго элемента:
let num = 12;
if (num % 2 === 0) {
console.log("Число четное");
} else {
console.log("Число нечетное");
}
const numbers = [3, 8, 11, 20, 15];
const evenNumbers = numbers.filter(n => n % 2 === 0);
console.log(evenNumbers); // [8, 20]
for (let i = 0; i < numbers.length; i++) {
if (i % 2 === 0) {
console.log(numbers[i]);
}
}
Вопрос-ответ:
Как проверить, что число в JavaScript является чётным?
Для проверки числа на чётность используется оператор остатка от деления %. Если число делится на 2 без остатка, значит оно чётное. Пример: if (num % 2 === 0) { /* число чётное */ }.
Можно ли использовать побитовый оператор для проверки чётности?
Да, побитовый оператор И (&) позволяет определить чётность числа. Если num & 1 равно 0, число чётное; если 1 — нечётное. Этот метод работает быстро и особенно удобен для целых чисел.
Что делать, если переменная не является числом?
Перед проверкой на чётность стоит убедиться, что переменная действительно содержит число. Для этого можно использовать функцию Number.isFinite(num). Если проверка не проходит, обработку чётности нужно пропустить или вывести сообщение об ошибке.
Как проверить чётность числа, полученного из строки?
Сначала нужно преобразовать строку в число с помощью Number() или parseInt(). После этого можно применить оператор %, например: if (Number(str) % 2 === 0) { /* чётное */ }. Важно убедиться, что строка содержит корректное число, иначе результат будет некорректным.
Можно ли написать функцию, которая возвращает true для чётных и false для нечётных чисел?
Да, это удобно для повторного использования. Пример функции: function isEven(num) { return num % 2 === 0; }. Она принимает число и возвращает логическое значение: true для чётных чисел и false для нечётных.
Как проверить число на четность с помощью оператора % в JavaScript?
В JavaScript для проверки четности числа часто используют оператор остатка от деления (%). Если число делится на 2 без остатка, оно четное. Пример: let num = 8;
if (num % 2 === 0) {
console.log('Число четное');
} else {
console.log('Число нечетное');
}
Здесь num % 2 возвращает остаток от деления числа на 2. Если результат равен 0, значит число четное.
Можно ли проверить четность числа без использования оператора %?
Да, есть несколько способов. Например, с помощью побитового оператора AND (&). Любое четное число в двоичной системе имеет нулевой младший бит. Проверка выглядит так: let num = 10;
if ((num & 1) === 0) {
console.log('Число четное');
} else {
console.log('Число нечетное');
}
Здесь num & 1 проверяет последний бит числа. Если результат 0, число четное; если 1 — нечетное. Этот метод может быть быстрее при работе с большими объемами данных.
