js 中的 isNaN([1]) 为什么返回false

传入长度为1的数组时

isNaN([1]);    //false

但是

isNaN([1,2]);    //true

还有

NaN === NaN  //false

好神奇啊。

阅读 4.3k
评论
    6 个回答
    • 4.3k

    NaN !== NaN 是可以理解的,毕竟 4 / 'error' 也不该等于 5 / 'error'

    isNaN([1])false,是因为 isNaN 接受的是数字类型,于是 [1] 被自动转换为了数字类型再传递给 isNaN,而转换结果是 1。不信你可以看到 Number([1]) 是 1。

    而你可以看到 Number([1,2]) 的结果是 NaN,于是 isNaN([1,2]) 自然是 true 了。

      相似问题
      推荐文章