当前位置:网站首页>ES6:数值的扩展

ES6:数值的扩展

2022-08-11 08:57:00 潮汐未见潮落

Number.isFinite() 和 Number.isNaN() 

ES6 在 Number 对象上,新提供了 Number .isFinite()  Number.isNaN() 两个方法。


Number.isFinite()

Number .isFinite()用来检查一个数值是否为有限的(finite),即不是 Infinity。

注意,如果参数类型不是数值,Number .isFinite() 一律返回  false

Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false

Number.isNaN() 

Number.isNaN()  用来检查一个值是否为 NaN

注意:如果参数类型不是 NaNNumber.isNaN 一律返回 false

Number.isNaN(NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
Number.isNaN(9/NaN) // true
Number.isNaN('true' / 0) // true
Number.isNaN('true' / 'true') // true

与传统方法的区别

它们与传统的全局方法 isFinite()和 isNaN()的区别在于,传统方法先调用 Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,Number.isFinite()对于非数值一律返回 falseNumber.isNaN()只有对于 NaN才返回true,非NaN一律返回false

isFinite(25) // true
isFinite("25") // true
Number.isFinite(25) // true
Number.isFinite("25") // false

isNaN(NaN) // true
isNaN("NaN") // true
Number.isNaN(NaN) // true
Number.isNaN("NaN") // false
Number.isNaN(1) // false

Number.parseInt(), Number.parseFloat() 

ES6 将全局方法 parseInt() parseFloat(),移植到 Number对象上面,行为完全保持不变。

这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。 

// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45

// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
Number.parseInt === parseInt // true
Number.parseFloat === parseFloat // true

文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会一一回复

文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力     长路漫漫,道阻且长

原网站

版权声明
本文为[潮汐未见潮落]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_52855464/article/details/126274600