JavaScript数值

JavaScript数值
1.概述

整数和浮点数
js内部是以64位浮点数存储
示例:
1===1.0//true

数值范围
如果值太接近0,js会直接将其转为0
示例:
var x=0.5;
for(var i=0;i<25;i++){
    x=x*x;
}
x//0

2.数值的进制
十进制,没有前导0的数值
八进制,前缀0o或0O的数值,或者有前导0、且只用到0,7的八个阿拉伯数字的数值
十六进制,前缀0x或0X的数值
二进制,前缀0b或0B的数值

3.正零和负零
示例:
-0 === +0 // true
0 === -0 // true
0 === +0 // true
唯一有区别的场合是,+0或-0当作分母,返回的值是不相等的
(1 / +0) === (1 / -0) // false

4.NaN
NaN表示非数字
示例:
5-'x'//NaN
0/0  //NaN

数据类型属于number
typeof NaN //number

NaN不等于任何值,包括它本身
NaN===NaN  //false

判断NaN的方法
isNaN方法可以判断一个值是否是NaN

isNaN(NaN) //true
isNaN(123) //false

其他类型的值传入方法会被转成数值最后返回true
isNaN('hello') //true

空数组和只有一个数值成员的数组,isNaN返回false
isNaN([])//false
isNaN([123])//false
isNaN(['123'])//false
上面代码之所以返回false,原因是这些数组能被number函数转成数值,使用isNaN之前最好判断一下数据类型
function myIsNaN(value){
    return typeof value ==='number'&&isNaN(value);
}
判断NaN更可靠的方法是,利用NaN是js中唯一不等于自身的值这个特点进行判断
function myIsNaN(value){
    return value !== value;
}

5.Infinity
Infinity表示无穷,有正无穷和负无穷
Math.pow(2,Math.pow(2,100))//Infinity
0/0  //NaN
1/0  //Infinity
Infinity===-Infinity//false

isFinite函数
isFinite函数返回一个布尔值,检查某个值是不是正常数值,而不是Infinity
示例:
isFinite(Infinity)//false
isFinite(-1)//true
isFinite(true)//true
isFinite(NaN)//false

6.parseInt()
parseInt方法用于将字符串转为整数
示例:
parseInt('132')//132
parseInt(1.23) // 1
// 等同于
parseInt('1.23') // 1
parseInt('8a') // 8
parseInt('12**') // 12
parseInt('12.34') // 12
parseInt('15e2') // 15
parseInt('15px') // 15
如果字符串的第一个字符不能转化为数字(后面跟着数字的正负号除外),返回NaN
parseInt('abc') // NaN
parseInt('.3') // NaN
parseInt('') // NaN
parseInt('+') // NaN
parseInt('+1') // 1
parseInt的返回值只有两种可能,不是一个十进制整数,就是NaN
parseInt('0x10') // 16
parseInt('011') // 11
parseInt方法还可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数
parseInt('1000') // 1000
// 等同于
parseInt('1000', 10) // 1000
如果第二个参数不是数值,会被自动转为一个整数。这个整数只有在2到36之间,才能得到有意义的结果,超出这个范围,则返回NaN。如果第二个参数是0、undefined和null,则直接忽略
parseInt('10', 37) // NaN
parseInt('10', 1) // NaN
parseInt('10', 0) // 10
parseInt('10', null) // 10
parseInt('10', undefined) // 10

7.parseFloat()
parseFloat方法用于将一个字符串转为浮点数
parseFloat('3.14')//3.14
parseFloat('3.14more non-digit characters') // 3.14
parseFloat(true)  // NaN
Number(true) // 1

parseFloat(null) // NaN
Number(null) // 0

parseFloat('') // NaN
Number('') // 0

parseFloat('123.45#') // 123.45
Number('123.45#') // NaN


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值