JavaScript ES6 中 Number.isFinite() 和 Number.isNaN()
巴扎黑
巴扎黑 2017-05-18 10:52:30
0
2
584

最近在学习ES6,关于数值扩展这有点疑问。

ES6在Number对象上提供两个方法:Number.isFinite()Number.isNaN()

与ES5不同在于取消了先调用一次Number()将非数值转化为数值后再判断。

注意:两个方法与传统的 isFinite() 和 isNaN() 方法区别在于,传统方法先调用 Number() 将非数值的值转为数值,再判断。这两个方法只对数值有效,非数值一律返回 false。

不太理解为什么要这么做,我觉得先调用一次Number()将非数值转化为数值后再判断不是应该更好吗?

巴扎黑
巴扎黑

全部回复(2)
phpcn_u1582

可以看看MDN的描述

而isFinite的你可以比较下Number.isFinite(true)和isFinite(true)就知道了。当然,Number.isFinite("")和isFinite("")也可以。

黄舟

这两个功能是Number上判断一个数值是否为有限的,或者是否为NaN,前提是数字,如果将string等内部暗操作转化成数字,就失去其本身所要直接表达的含义,还有带来一些其它问题,就变成不仅仅可以判断数字,也可以判断string等类型。
参考链接:

es6
isNaN

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板