NaN是个啥

作者: 辉夜乀 | 来源:发表于2017-04-05 00:43 被阅读84次

含义

NaN是JavaScript的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

5 - 'x' // NaN

上面代码运行时,会自动将字符串x转为数值,但是由于x不是数值,所以最后得到结果为·NaN·,表示它是“非数字”(NaN)。

另外,一些数学函数的运算结果会出现NaN

Math.acos(2) // NaN
Math.log(-1) // NaN
Math.sqrt(-1) // NaN
0/0           //NaN

这些计算在数学上本来就是错误的,所以计算结果返回NaN

注意: NaN 的数据类型仍然是number

typeof NaN
//"number"

神奇之处

NaN === NaN  // false

//NaN不等于任何值,包括它本身
Boolean(NaN) // false

//条件判断布尔运算时,NaN 被当做false
NaN + 1 // NaN
NaN - 1 // NaN
NaN * 1 // NaN
NaN / 1 // NaN

//NaN与任何数(包括它自己)的运算,得到的都是NaN。

判断NaN 的方法

  1. isNaN() ,判断一个数是否为NaN,返回 truefalse,但是只对数值有效,不是数值的参数会先转化成数值,当转化不了的时候就转成了NaN,所有这个方法判断不一定准确。
  2. 判断NaN更可靠的方法是,利用NaN是JavaScript之中唯一不等于自身的值这个特点,进行判断。
function myIsNaN(value) {
  return value !== value;
}

相关文章

  • NaN是个啥

    含义 NaN是JavaScript的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数...

  • arr.map(parseInt)陷阱

    这道题大家认为答案是啥呢? 应该是[1,NaN, ,NaN] 这道题考察的是函数的掌握程度根据MDN的文档,Arr...

  • JavaScript -- NaN

    NaN是一个number类型特点 和NaN做运算返回 NaN NaN和任意一个对象都不相等包括NaN

  • JS 运算符

    NaN是什么? 有什么特别之处? NaN 表示不是一个数字(Not-A-Number)。NaN===NaN是fal...

  • @简书小管家 啥是NAN

    @简书小管家,你家测试小姐姐又偷懒了。辛辛苦苦做任务,等到待领取一看,啥也没有了。 NAN 是什么 请解释一下 你...

  • js 中怎么判断一个数据是否是NaN

    NaN不是一个数字,NaN不等于本身,只要NaN不等于本身,利用这个特性判断是否是NaN。

  • JS中为什么 NaN 不等于 NaN

    JS中为什么 NaN 不等于 NaN 为什么NaN === NaN 是返回false呢? 因为NaN 是:Not ...

  • JavaScript 中的 NaN

    什么是 NaN 什么时候会返回 NaN 判断 NaN 参考 什么是 NaN 在 MDN 的 NaN 文章中有描述:...

  • 2018-06-26 (NaN)

    NaN NaN (not a Number) 不是 一个 数字 。 NaN (not a N...

  • JavaScript——运算符&流程控制

    一、NaN NaN即非数值,是一个特殊的数值。NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如Na...

网友评论

    本文标题:NaN是个啥

    本文链接:https://www.haomeiwen.com/subject/ivftattx.html