如何确定函数的参数除以2是否为NaN?

时间:2018-06-21 02:53:45

标签: javascript

我需要编写一个带有参数的函数。如果参数除以2为NaN,则返回“ FLYING NOCTURNAL MAMMAL MAN!”。否则,它将返回参数除以2的结果。我感觉我正在尝试的东西非常接近。任何帮助将不胜感激!谢谢。

这是我正在尝试的:

nananan = (num) => {
  if(num/2 == isNaN(num) || isNaN(num)) {
    return "FLYING NOCTURNAL MAMMAL MAN!";
  } else {
    return num;
  }
}

3 个答案:

答案 0 :(得分:2)

因此以下代码应该有效

nananan = (num) => {
  if(isNaN(num)) {
    return "FLYING NOCTURNAL MAMMAL MAN!";
  } else {
    return num/2;
  }
}

console.log(nananan()); //now its NAN
console.log(nananan('adf')); //now its NAN
console.log(nananan(1)); //now its not a NAN
console.log(nananan(-1)); //now its not a NAN

因此,这里的逻辑是num/2仅在num本身是NAN的情况下才是NAN。那么为什么只检查isNaN(num/2)就应该isNaN(num)呢?

答案 1 :(得分:2)

nan = (num) => {
    if (isNaN(num/2)) return "FLYING NOCTURNAL MAMMAL MAN!"
    else return num/2
}

console.log(nan(2))
console.log(nan('a'))

答案 2 :(得分:1)

您可以使用conditional ternary ? operator使其更加简洁:

const nananan = num => isNaN(num) ? 'FLYING NOCTURNAL MAMMAL MAN!' : num / 2;

正如我在评论中提到的,虽然isNaN(num / 2)确实是您要寻找的条件,但只有且isNaN(num)为真时,它才为真。