30秒学会 JavaScript 片段 · 2022年7月3日

30秒学会 JavaScript 片段 – 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.

翻译自:https://www.30secondsofcode.org/js/s/number-is-even-odd