在 ES9 中,推荐使用 Number.isFinite() 来检查一个数值是否为有限数。相比之前的全局方法 isFinite() ,Number.isFinite() 更加严格和可靠。
为什么要使用 Number.isFinite()
在 JavaScript 中,有些数值是有限的,比如 5、0、-3.14 等等;有些数值是无限的,比如 Infinity、-Infinity;还有些数值是非数值,比如 NaN。
使用全局方法 isFinite() 来判断一个数值是否为有限数的时候,会先将参数转换为数值,然后再进行判断。这样会导致一些错误的结果,比如:
isFinite("one"); // true isFinite(""); // true isFinite(null); // true isFinite([]); // true isFinite({}); // true
上述例子中,我们期望的结果应该是 false,但是由于 isFinite() 先将参数转换为数值,所以导致了错误的结果。
相比之下,Number.isFinite() 更加严格和可靠。它只会对数值类型的参数返回 true,对于其他类型的参数都会返回 false。
如何使用 Number.isFinite()
使用 Number.isFinite() 很简单,只需要将需要检查的数值作为参数传入即可。
-- -------------------- ---- ------- ------------------- -- ---- ----------------------- -- ---- -------------------------- -- ----- --------------------------- -- ----- --------------------- -- ----- ----------------------- -- ----- -------------------- -- ----- ---------------------- -- ----- -------------------- -- ----- -------------------- -- -----
总结
在 ES9 中,推荐使用 Number.isFinite() 来检查一个数值是否为有限数。相比之前的全局方法 isFinite() ,Number.isFinite() 更加严格和可靠。在实际开发中,我们应该尽量避免使用 isFinite(),而是使用 Number.isFinite() 来保证代码的正确性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66079c90d10417a222630f58