博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6 对Number的扩展
阅读量:7060 次
发布时间:2019-06-28

本文共 2462 字,大约阅读时间需要 8 分钟。

Number.isFinite(), Number.isNaN()

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

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

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

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

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

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

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

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

isFinite(25) // trueisFinite("25") // trueNumber.isFinite(25) // trueNumber.isFinite("25") // falseisNaN(NaN) // trueisNaN("NaN") // trueNumber.isNaN(NaN) // trueNumber.isNaN("NaN") // falseNumber.isNaN(1) // false

Number.parseInt(), Number.parseFloat()

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

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

Number.isInteger()

Number.isInteger()用来判断一个数值是否为整数。

Number.isInteger(25) // trueNumber.isInteger(25.1) // false

JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值。

Number.isInteger(25) // trueNumber.isInteger(25.0) // true

如果参数不是数值,Number.isInteger返回false

Number.isInteger() // falseNumber.isInteger(null) // falseNumber.isInteger('15') // falseNumber.isInteger(true) // false

安全整数和 Number.isSafeInteger()

JavaScript 能够准确表示的整数范围在-2^532^53之间(不含两个端点),超过这个范围,无法精确表示这个值。

ES6 引入了Number.MAX_SAFE_INTEGERNumber.MIN_SAFE_INTEGER这两个常量,用来表示这个范围的上下限。

Number.isSafeInteger()则是用来判断一个整数是否落在这个范围之内。

Number.isSafeInteger('a') // falseNumber.isSafeInteger(null) // falseNumber.isSafeInteger(NaN) // falseNumber.isSafeInteger(Infinity) // falseNumber.isSafeInteger(-Infinity) // falseNumber.isSafeInteger(3) // trueNumber.isSafeInteger(1.2) // falseNumber.isSafeInteger(9007199254740990) // trueNumber.isSafeInteger(9007199254740992) // falseNumber.isSafeInteger(Number.MIN_SAFE_INTEGER - 1) // falseNumber.isSafeInteger(Number.MIN_SAFE_INTEGER) // trueNumber.isSafeInteger(Number.MAX_SAFE_INTEGER) // trueNumber.isSafeInteger(Number.MAX_SAFE_INTEGER + 1) // false

转载地址:http://feyll.baihongyu.com/

你可能感兴趣的文章
SVN分支/合并原理及最佳实践
查看>>
RHCS+GFS(红帽HA+GFS)
查看>>
XtraBackup
查看>>
工程企业最关注的管理重点
查看>>
2017年最新企业面试题之shell(二)
查看>>
[毕业生的商业软件开发之路]现代商业软件开发概况
查看>>
android 反汇编,修改,重新打包
查看>>
mysql服务命令
查看>>
Openstack 之 安全关闭HA集群
查看>>
Oracle新建用户、角色,授权,建表空间的sql语句
查看>>
SICP 3.28 3.29 3.30
查看>>
C语言第二节课
查看>>
discuz文档说明注释
查看>>
cc_美团 商品详情图片放大显示ViewPager
查看>>
Postfix添加多端口
查看>>
IP地址详解
查看>>
如何在 TDrawGrid 的单元格中显示图片 - 回复 "巅枫" 的问题
查看>>
再学 GDI+[12]: 准备工作 - 矩形命中
查看>>
微软实战训练营[威武]公开课《解答Web Service和WCF、SOA经典面试题》
查看>>
Java服务端Cors跨域资源共享配置,解决与Spring Security冲突引起的问题
查看>>