es6数值类型拓展

本文介绍了ES6中Number对象的更新,包括将全局函数如isNaN、isFinite移至Number对象下,强调了它们与全局函数的区别。重点讲解了Number.isNaN、Number.isFinite、Number.isInteger、Number.EPSILON和安全整数的概念。此外,还提到了Math对象的扩展,如Math.trunc、Math.sign和Math.cbrt。这些新特性的理解有助于深化对JavaScript数值处理的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.es5中全局函数有哪些?
答:isNaN函数,isFinite函数,parseInt函数,parseFloat函数等,原先呢这些函数都是属于window对象下的全局函数,在es6的标准中将他们移在了Number对象下。所以在使用之前必须指明是在number对象下,否则会被认为是window下的。

那么,为什么好端端的在window对象下的函数要移植到number对象下呢。这样做的目的是慢慢减少全局性的函数,把全局函数合理规划到其他对象下面,渐渐实现语言的模块化。

2.Number.isNaN()函数
Number.isNaN函数。用于判断一个传入的参数是不是非数值。number对象下的函数和window对象下的函数是有区别的。在number对象下,如果传入的参数不是一个数值类型的话就直接返回false,而不是像window对象下那样先转为数值类型再判断,这是需要值得注意的地方。

window.isNaN('abc')
true
window.isNaN(0.2)
false
Number.isNaN('a')
false
Number.isNaN(10)
false
Number.isNaN(NaN)
true
只有传入的参数为NaN的时候,才会为true,其他时候都为false


window.isNaN
比如说abc,abc是不是一个非数值。是的,他是一个非数值,所以返回true。2.5是不是一个非数值类型呢。不是,他是数值类型所以返回false。
在window对象下的isNaN函数中,会将传入的参数转化成数值类型在进行判断,而abc转化成数值类型是NaN,所以返回的是true。

3.Number.isFinite
用来判断一个数值是否非无穷。注意是判断非无穷,不是判断无穷。
个人理解为判断一个数是否是用穷的。需要注意的是,Number.isFinite只对数值类型有效,当传入的参数为非数值类型的时候返回为false。

Number.isFinite(2.3)
true  //2.3是有穷的吗 是的他是有穷的

Number.isFinite('a')
false

Number.isFinite(Infinity)
false


4.Number.parseInt
解析一个字符串,返回一个整数。和在window对象的作用一样。

5.Number.parseFloat
解析一个字符串,返回一个小数。和在window对象的作用一样。

6.Number.isInteger
用来判断是否是整数。需要注意的是,在javascript中,对整数和浮点数采用一样的存储方式,因此小数点后如果都是0的浮点数,都会被认为是整数。

Number.isInteger(3.2)
false
Number.isInteger('A')
false
Number.isInteger(3)
true
Number.isInteger(3.0000)
true


7.Number.EPSILON
极小常量。定义一个极小的数值。

console.log(Number.EPSILON)
2.220446049250313e-16

Number.EPSILON的出现是用来判断浮点数的计算误差,如果浮点数计算得到的误差不超过Number.EPSILON的值,就表示可以接受这样的误差。

8.安全整数
es6引入了安全整数的概念。原来在js能够准确表示的整数范围在-2^53到2^53之间。超过这个范围,无法精确表示这个值。故称为不安全。

判断一个数值安不安全用Number.isSafeInteger来判断

Number.MAX_SAFE_INTEGER
9007199254740991

es6为Math对象增加的扩展

1.Math.trunc
用于去除一个数的小数部分,返回整数部分。

Math.trunc(2.65)
2
Math.trunc('a')
NaN
Math.trunc('2.6a')
NaN


2.Math.sign
用来判断一个数到底是正数,负数还是零

Math.sign(10)
1
Math.sign(0)
0
Math.sign(-10)
-1


3.Math.cbrt
用于计算一个数的立方根。

Math.cbrt(27)
3


通过学习我们了解了Number和Math对象下的几个函数,分别是:1.Number对象下的:isNaN函数,isFinite函数,parseInt函数,parseFloat函数,isInteger函数,EPSILON极小常量,MAX_SAFE_INTEGER安全整数,可以通过Number.isSafeInteger函数来判断一个数值是否安全。 2.Math对象下的:Math.trun函数(除去小数部分返回整数部分)、Math.sign函数(判断一个数值是否是正数、负数还是0)、Math.cbrt函数(计算一个数的立方根)。

最后附上一句自己很喜欢的话:兴趣遍地都是,专注和持之以恒才是真正稀缺的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值