Javascript 三元运算符隐藏逻辑

Javascript ternary operator hidden logic

function even_or_odd(number) {
  return number % 2 === 0 ? 'Even' : 'Odd';
}

function even_or_odd(number) {
  return number % 2 ? "Odd" : "Even"
}
为什么这两个函数 return 结果相同?

return number % 2 ? "Odd" : "Even" 是如何工作的?

0 in javascript 是一个虚假值。

var v = 0;

if(v) {
  console.log("true");
} else {
  console.log("false");
}

number % 2 将 return 0(即 falsy)或 1(即 truthy)。所以如果 numbereven 那么 number % 2 将 return 0 并且三元的条件将是 false, ...