关于NaN

有两种情况会出现NaN

  • 1.隐式转换失败:
    在表达式中出现-、*、/等数学运算符时,JS引擎会在计算之前隐式转换运算符两边的变量为number类型(创建一个包装对象?),有一个转化失败的运算结果都是返回NaN
  • 2.强制转换失败
    通过使用parseInt、parseFloat或Numer将一个非数值类型转换为数字时,(注意点:Number转换要严格于前两者)

当一个表达式返回了NaN时,表示该表达式中转化的变量接着返回了无效的结果,并不是说返回了一个确切的值,如果非要是说NaN是一个值的话,那么NaN就是除去数值以外的一个不确切的值,正则表达值可以描述为[/^\d/]。所以NaN!=NaN,因为它表示的只是一个范围;
注意点:和NaN不同的是,undefined和null都各自表示的唯一确切一种状态值;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容