自述:

+0 === -0 //true
NaN === NaN // false

ANSWER:

首先,NaN是“Not a Number”的缩写,表示不是一个数字。

不是数字的范围就比较大了,所有无法转换成数字的值,在JS中都有用NaN表示,所以NaN === NaN的结果才是false,另外在ECMAScript标准文档中也写到了这句话:

to ECMAScript code, all NaN values are indistinguishable from each other.

(在这里强烈建议大家有空可以多看看开发文档)

翻译过来就是:对于ECMAScript代码,所有NaN都无法区分

不过如果判断一个值是不是NaN的话,有两个方法:

一个是全局定义的isNaN(),另一个是Number包装类上的静态方法Number.isNaN()

这两个方法的区别就是:

如果当前值是NaN,或者将其强制转换为数字后将是NaN,isNaN()方法返回true,Number.isNaN()方法返回false,所以一般来说判断一个值是不是NaN时,推荐使用后者Number.isNaN()

为什么NaN===NaN?相关推荐

  1. 解惑 [1, 2, 3].map(parseInt) 为何返回[1,NaN,NaN]

    javascript中的parseInt与map函数都是常用的函数,可是 ["1", "2", "3"].map(parseInt) 为何返 ...

  2. 为什么NaN - NaN == 0.0与英特尔C ++编译器?

    本文翻译自:Why does NaN - NaN == 0.0 with the Intel C++ Compiler? It is well-known that NaNs propagate in ...

  3. 什么是NaN,NaN==NaN?

    NaN是JavaScript中的一种数据类型–number类型,他表示不是数字 例: function num(numm){console.log(numm);console.log(numm==nu ...

  4. NaN 是什么 NaN == NaN ?

    NaN是一个值类型,同是也是一个数值.意思是Not A Number,这个都知道是什么意思.值比较特殊,特殊在于NaN是一个数值,是一个与任何数值都不相等的数值.在javascript中我们通过typ ...

  5. NaN == NaN 的结果是什么?

    NaN是Not a Number的缩写,代表非数字值的特殊值,该属性用于指示某个值不是数字.如果有非数值参与计算,结果就是 NaN.NaN与自身不相等(NaN不与任何值相等) 在JavaScript中 ...

  6. 'CALayer position contains NaN: [nan nan]'异常

    异常 Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position con ...

  7. js根据时间戳获取日期失败,NaN-NaN-NaN NaN:NaN:NaN

    function getDate(timestamp) {var myDate = new Date(timestamp * 1000);var month = myDate.getMonth() + ...

  8. NaN是什么?NaN == NaN 的结果是什么?为什么?

    NaN虽然表示是一个非数字,但是数值类型. 1.两个变量中存储的数据,都不是数值,执行结果就是NaN. 例: 执行结果: 2.执行运算时 , 非加法运算 ,只要有NaN参与,执行结果都是NaN. 例: ...

  9. NaN是什么? NaN == NaN 的结果是什么?为什么?

    NaN:全称为not a number,理解为不是一个数值.表示一个存储数据的数据类型. NaN == NaN 的执行结果为:false.代码与结果如下图: 原因: JavaScript的规定, Na ...

  10. NaN == NaN , NaN === NaN 为啥是false?

    NaN == NaN or NaN === NaN 为什么都是false? 首先NaN是一个值类型,意思是not a number. 这个值比较特殊,特殊于是一个数值,一个和任何数值都不相等的数值. ...

最新文章

  1. Apache模块开发helloworld无错版
  2. 运动合成——机器学习技术
  3. 广告投手_测量投手隐藏自己的音高的程度
  4. mysql数据备份(windows,linux)
  5. 事务学习总结(2)——spring事务
  6. 程序员面试题之从字节截断谈起
  7. linux 755 777是什么权限,linux系统下644、755、777权限详解
  8. #565. 「LibreOJ Round #10」mathematican 的二进制(期望 + 分治NTT)
  9. python相关参考地址收藏
  10. sql server系统数据库,temp库的用途
  11. 又给人家当分母了,顺便介绍一下GIS领域的顶级国际会议
  12. GPS从入门到放弃(十三) --- 接收机自主完好性监测(RAIM)
  13. KITTI数据集评估方法小结
  14. Java Web开发后端常用技术汇总
  15. MSI设计一个1位二进制全减器
  16. 快速批量创建文件夹的方法
  17. 教务系统选课(抢课)技巧
  18. 记录微信公众号迁移的过程(使用微擎)
  19. Windows 消息大全
  20. 【矩阵论笔记】Hermit标准型

热门文章

  1. 导入maven项目pom报错
  2. 深度学习中的几个错误率和准确率
  3. MindSpore爱因斯坦求和约定API解析【mindspore.ops.Einsum】
  4. 柯文哲《生死的智慧》
  5. 爆笑:GIF 动画展示开发者的生活
  6. Spring Cloud 学习笔记(3 / 3)
  7. python入门交流群_python 初学者交流 | Running Snail
  8. Excel导入多个HTML,网页表格批量导入到excel表格数据-如何将多个网页上的数据批量导入EXCEL...
  9. 交互媒体专题设计结课实验报告
  10. “网络和拨号连接”图标丢失疑难解答