ECMAScript 6 数值扩展详解:isFinite、isNaN、parseInt、parseFloat与isInteger
本文详细介绍 ECMAScript 6 对数值类型的扩展。重点解析 Number.isFinite() 与 Number.isNaN() 的类型严格检查机制,parseInt() 与 parseFloat() 向 Number 对象的迁移及其模块化意义,以及 Number.isInteger() 对整数判断的实现。通过具体代码示例说明各方法的行为与限制,帮助开发者更精确地处理数值类型。
一、数值的扩展
Number.isFinite(), Number.isNaN()
ES6 在 Number 对象上新增了两个方法:Number.isFinite() 和 Number.isNaN()。
Number.isFinite() 用于检测一个数值是否有限,即排除 Infinity(无穷大)。
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.isFinite() 将统一返回 false。
Number.isNaN() 用于检测一个值是否为 NaN(非数字)。
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
如果传入的参数类型不是 NaN,Number.isNaN() 将统一返回 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
Number.isInteger()
Number.isInteger() 用于判断一个数值是否为整数。
Number.isInteger(25) // true
Number.isInteger(25.1) // false以上就是 ECMAScript 6 数值扩展实例详解的详细内容,更多关于 ECMAScript 6 数值扩展的资料请关注本站其它相关文章!
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
