isNaN的理解

相信有学过JavaScript的同窗都对isNaN不会陌生,它的做用是判断当前值是否能转换为数字的重要工具。函数

在介绍isNaN函数前,咱们先来讲说NaN。工具

NaN

NaN(not a number)是Number的一个特殊数值。对它的定义其实很是奇怪,非数值,一个不是数字的数值。这个数值用来表示原本用来返回数字的操做未返回数字的状况。code

NaN有这样的特色:对象

  1. 全部数值类型除以/减去/乘以非数值类型,都返回NaN。
  2. NaN不等于任何值,包括自身。(NaN != NaN)

注:Boolean和Null能转换成Number类型,因此能正确返回数字。ip

isNaN()

isNaN()接收一个参数,这个参数能够是任意类型。若是这个参数能够被转换为Number类型,则返回false,不然返回true方法

  1. isNaN()的参数会被尝试转换为Number类型。
  2. 若是参数为[]''truefalsenull会被转换为数字,结果返回false。

注:当传入的参数为一个对象时,isNaN()会尝试调用valueOf()方法,来判断是否能够转换为数值,若是不能,还会再调用toString()方法,来继续判断是否能够转换为数值。co

相关文章
相关标签/搜索