近似值比较和 NaN 处理技巧:ECMAScript 2019 的 Number.isFinite、Number.isNaN、Object.is?

阅读时长 3 分钟读完

在 JavaScript 中,处理数字时,在一些情况下可能需要进行近似值比较或者检测 NaN。ECMAScript 2019 引入了新的方法 Number.isFiniteNumber.isNaNObject.is 来进行这些操作。

Number.isFinite

Number.isFinite 方法用来判断一个数字是否有限,即不是无穷大(Infinity)和不是非数字(NaN)。

它的使用方式和传统的 isFinite 函数类似,但是它可以准确地检测一个数字是否为有限。传统的 isFinite 函数会把非数字的值转换成数字类型,而 Number.isFinite 只会接受数字类型的值。这种行为保证了函数只返回 true 对于有限的数字,即便这个数字是负数或者带有分数部分。

以下是使用 Number.isFinite 的示例代码:

Number.isNaN

Number.isNaN 方法用来判断一个值是否是非数字(NaN)。它的使用方式和传统的 isNaN 函数类似,但是它只接受数字类型的值。

以下是使用 Number.isNaN 的示例代码:

Object.is

Object.is 方法用来判断两个值是否严格相等。它和 === 操作符的行为基本一致,但有一些特殊情况。在比较的时候,Object.is 方法对待 +0 和 -0 是不同的;同时它认为 NaN 不与任何值相等(包括自身)。

以下是使用 Object.is 的示例代码:

总结

在 JavaScript 中,处理数字的过程中可能需要进行近似值比较或者检测 NaN。ECMAScript 2019 引入了三个新的方法 Number.isFiniteNumber.isNaNObject.is 来满足这些需求。其中,Number.isFiniteNumber.isNaN 都是基于传统的函数的强化版,而 Object.is 则是专门用来比较两个值是否严格相等的方法。通过学习和掌握这些方法,可以更加方便地进行数字的处理。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651b9bda95b1f8cacd34011d

纠错
反馈