The modulo operator (
%) returns the remainder of a division operation. Given that, we can check if a number is even or odd by dividing it by
2 and checking the remainder. If the remainder is
0, the number is even, otherwise it's odd.
const isEven = num => num % 2 === 0; const isOdd = num => num % 2 === 1; isEven(3); // false isOdd(3); // true
The bitwise AND operator (
1 if both bits are
1, otherwise it returns
0. The binary representation of an even number always ends with
0, while the binary representation of an odd number always ends with
1. As such, applying the bitwise AND operator to a number and
1 will return
0 for even numbers and
1 for odd numbers. In order to convert this result to a boolean, we can use the
const isEven = num => !Boolean(num & 1); const isOdd = num => Boolean(num & 1); isEven(3); // false isOdd(3); // true
- While both approaches work, the modulo operator is more readable and should be preferred.
- Apart from these two approaches, other bitwise operators, such as the bitwise XOR operator (
^), can also be used to check if a number is even or odd.