jsajax返回的数据是nan_JS数字类型之NaN及isNaN

fdebcfd7e175491c1e254a505f567c06.png

什么是NaN:

NaN 就是在发生类型强制转换的时候会产生 NaN ,也就是把其他类型转换成 Number 类型时,不能转换而返回的结果。

几种转换为 Number 类型的方法及可能出现NaN情况:

第一种转换函数:parseInt / parseFloat

console.log(parseInt(" 我是谁 ")); console.log((" 我是谁 "));

以上两种转换函数的结果就会返回 NaN 因为转换的不是一个有效数字啊。

第二种强制转换类型: Number()

console.log(Number("12px")); 返回 NaN 因为不是一个有效数字,后面有文字

第三种变量弱类型转换:

var str = '012.345 '; var x = str - 0; console.log(x, typeof x); // 这就是正常的了

那在JS中不管是什么都会有个类型,那 NaN 是个啥类型呢?

92f020534ee708762e321b0a6a69b6a0.png


类型输出

这里可以看到,NaN 的类型是 Number,那既然是 Number 类型,那我用它来比较是不是 数字类型 可不可以勒,那咱们就来看一下。

f95931bc9e8f33db8b600e0bb614f92c.png


NaN比较

那这里怎么返回的都是 false 呢? 并且自己连自己都不等于,NaN的英文翻译是:Not a number (不是一个数字的缩写),那居然你不是一个数字 比喻是A,我也不是一个数字 比喻是B,那么 A == B 嘛?你会发现并不相等 返回 false。

那我想判断一个 变量是不是数字类型,不能使用NaN方法,那就有了 isNaN 的出现,请看下方用法:

8bf62d4c394b05522e5263167547e950.png


isNaN用法

isNaN 返回值是 如果你是有效数字,就是返回false,这里为啥是false 请看上面 NaN 英文的翻译 ,如果你返回的不是一个有效数字就是 true。

原理相当于是:

da551defa8026efcccd4e3f21d27ec8f.png


原理

这里你会发现,判断的时候通过Number进行了一波隐式转换,才得到最终结果 false。

说到在项目中真实的用处,目前还没有遇到,但是如果你了解这个方法,遇到相关处理数据需要判断时,你就会想到它啦,以上就是本人对 NaN 及 isNaN 的相关介绍, 还有那句话:如有不对之处及不周之处请大佬们指出,也希望对一些人有所帮助,咱们下次再会!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值