js数据基本数据类型-Number(数字类型)详解

number数字类型

包含:常规数字、NaN

NaN

not a number: 非数字 不是一个数,但它率属于数字类型

NaN和任何值(包括自己)都不相等:NaN!=NaN,所以我们能用相等的方式判断是否为有效数字

isNaN

检测一个值是否为非有效数字,如果不是有效数字返回true,反之是有效数字返回false

在使用isNaN进行检测的时候,首先会验证检测的值是否为数字类型,如果不是,先基于Number()这个方法,把值转换为数字类型,然后检测
在这里插入图片描述
[val] 这样写法叫做:参数描述占位符

把其他类型值转换为数字类型

  • Number([val])
    在这里插入图片描述

注意:undefined代表未定义,未定义代表没有赋值,没有赋值的值它就没有值。没有值的话它就是NaN.

在这里插入图片描述

注意:
Number({}) 先调用tostring()方法({}.toString() 对象的toString()是其原型上的方法,监测数据类型)转换成字符串为:"[object Object]" 在调用Number() 转成数字 为 NaN
Number([]) 先调用tostring()方法转换为字符串为 ‘’ 空串,在掉Number() 转换为 0

  • parseInt/parseFloat([val],[进制]):也是转换数字的方法,对于对于字符串来说,它是从左到右依次查找有效数字字符,知道遇到非有效数字字符,停止查找(不管后面是否还有数字,都不在找了),把找到的当做数字返回
  • 进行比较的时候,可能要出现把其它类型值转换为数字

注意:
在==比较的过程中,数据转换的规则:
【类型一样的几个特殊点】’
{}= = {}:false [] = =[]:false 对象比较的是堆内存的地址
NaN = = NaN:false
【类型不一样的转换规则】

  1. null = = undefined:true,但是换成===结果是false(因为类型不一致),剩下null/undefined和其它任何数据类型值都不相等
  2. 字符串==对象 要把对象转换为字符串
  3. 剩下如果==两边数据类型不一致,都是需要转换为数字再进行比较
    null == 0 // false
    undefined == 0 // false
JS中的加减乘除本应该是数学运算(如果遇到的值不是数字类型,也需要基于Number()方法转换为数字,在进行运算);但是JS中加法有特殊情况;相加过程中遇到字符串直接变为字符串拼接(+两边都转换为字符串进行拼接toString())

var c=100+true+21.2+null+undefined+‘Tenent’+[]+null+9+false;
console.log©
注: 100+1+21.2+0+Number(undefined)结果为NaN+‘Tenent’+[]+null+9+false;
122.2+NaN=NaN
NaN+‘Tenent’=‘NaNTenent’
‘NaNTenent’ 遇到字符串接下来成为字符串拼接 [].toString()=’’
‘NaNTenent’ +’’= ‘NaNTenent’
‘NaNTenent’+null+9+false=‘NaNTenentnull9false’
结果: ‘NaNTenentnull9false’

在这里插入图片描述
错误答案:NaN
parseInt(‘abc123’)结果为NaN 但是NaN和谁都不相等,包括自己
答案:alert(‘number’)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值