JavaScript ES6中 Number.isFinite() 和 Number.isNaN()
巴扎黑
巴扎黑 2017-05-18 10:52:30
[JavaScript讨论组]

最近在学习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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号