function isOdd(num) { return num % 2 == 1; } function isEven(num) { return num % 2 == 0; } function isSane(num) { return isEven(num) || isOdd(num); } var values = [7, 4, "13", -9, Infinity]; values.map(isSane); // A. [true, true, true, true, true] // B. [true, true, true, true, false] // C. [true, true, true, false, false] // D. [true, true, false, false, false]
答案是C。
-9 % 2 = -1 以及 Infinity % 2 = NaN,求余运算符会保留符号,所以只有 isEven 的判断是可靠的。