开发者社区> 问答> 正文

typeof NaN 的结果是什么?

typeof NaN 的结果是什么?

展开
收起
请回答1024 2020-04-02 13:37:35 2101 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    通常会在运算过程中产生:

    console.log('abc' / 4);

    console.log(4 * 'a');

    虽然它 "不是一个数字",但是 NaN 的 typeof 结果却是 number:

    console.log(typeof (4 * 'a')); // number
    

    NaN 和任何变量都不相等,包括 NaN 自己:

    console.log(NaN === NaN); // false
    

    判断一个变量是不是 NaN 可以用 isNaN()

    函数,但是这并不是一个完美的函数,有些时候用value !== value似乎更准确,幸运的是,ES6 已经有Number.isNaN()方法,将比 isNaN()准确的多。

    2020-04-03 22:26:02
    赞同 展开评论 打赏
  • NaN 意指“不是一个数字”(not a number),NaN 是一个“警戒值”(sentinel value,有特殊用途的常规值),用于指出 数字类型中的错误情况,即“执行数学运算没有成功,这是失败后返回的结果”。

    typeof NaN; // "number"

    NaN 是一个特殊值,它和自身不相等,是唯一一个非自反(自反,reflexive,即 x === x 不成立)的值。而 NaN != NaN 为 true。

    2020-04-02 13:37:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载