← Назад к вопросам

Как проверить является ли число четным в JS?

1.8 Middle🔥 181 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как проверить четность числа в JavaScript

Для проверки четности числа используется оператор модуля (%). Четное число делится на 2 без остатка, то есть число % 2 равно нулю.

Основной способ: оператор модуля (%)

Оператор % возвращает остаток от деления. Если число делится на 2 нацело, остаток будет 0.

const isEven = (num) => num % 2 === 0;

console.log(isEven(4));   // true (четное)
console.log(isEven(7));   // false (нечетное)
console.log(isEven(0));   // true (ноль четный)
console.log(isEven(-2));  // true (отрицательные числа тоже работают)

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

const isOdd = (num) => num % 2 !== 0;

console.log(isOdd(3));    // true (нечетное)
console.log(isOdd(8));    // false (четное)
console.log(isOdd(-5));   // true (нечетное отрицательное)

Побитовый оператор (&)

Этот способ немного быстрее, но менее очевиден:

const isEven = (num) => (num & 1) === 0;

console.log(isEven(4));   // true
console.log(isEven(7));   // false

Почему это работает: в двоичной системе четные числа заканчиваются на 0, нечетные на 1. Операция & 1 проверяет последний бит.

Полная валидация с проверкой типа

Лучше всегда проверять что это реально число:

const isEvenNumber = (num) => {
  // Проверяем что это число
  if (typeof num !== 'number' || isNaN(num)) {
    throw new Error('Аргумент должен быть числом');
  }
  
  // Проверяем что это целое число
  if (!Number.isInteger(num)) {
    throw new Error('Число должно быть целым');
  }
  
  return num % 2 === 0;
};

console.log(isEvenNumber(4));    // true
console.log(isEvenNumber(3.5));  // Error: целое число
console.log(isEvenNumber('4'));  // Error: число

Использование в фильтрации массивов

const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4, 6, 8, 10]

const oddNumbers = numbers.filter(num => num % 2 !== 0);
console.log(oddNumbers); // [1, 3, 5, 7, 9]

Вывод

Оптимальный способ: num % 2 === 0 для проверки четности. Это:

  • Простой и понятный код
  • Хорошая производительность
  • Работает с любыми целыми числами
  • Легко запомнить и объяснить

Используй побитовый оператор & только если действительно нужна максимальная производительность в критичном коде.