How can I check if a number is even or odd using JavaScript?
Using the modulo operator
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
Using the bitwise AND operator
The bitwise AND operator (&
) returns 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 Boolean()
function.
const isEven = num => !Boolean(num & 1); const isOdd = num => Boolean(num & 1); isEven(3); // false isOdd(3); // true
Notes
- 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.