ECMAScript 6 数值扩展详解:isFinite、isNaN、parseInt、parseFloat与isInteger

作者:小括号时间:2026-10-25 18:37:55浏览:129

本文详细介绍 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 数值扩展的资料请关注本站其它相关文章!

作者最新文章