重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇内容介绍了“JavaScript怎么判断变量是否为数字”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
成都创新互联公司是网站建设专家,致力于互联网品牌建设与网络营销,专业领域包括成都网站设计、网站制作、电商网站制作开发、小程序开发、微信营销、系统平台开发,与其他网站设计及系统开发公司不同,我们的整合解决方案结合了恒基网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,且不断评估并优化我们的方案,为客户提供全方位的互联网品牌整合方案!
首先创建一些测试变量:
let intVar = 2; let floatVar = 10.5; let stringVar = '4'; let nanVar = NaN; let infinityVar = Infinity; let nullnullVar = null; let undefinedundefinedVar = undefined;
使用Number.isFinite()函数
Number.isFinite() 用来函数检查变量是否为数字,但也用来检查其是否为某些特殊值。它在遇到 NaN, Infinity 或者 -Infinity 时会返回 false。
接下来在上面定义的变量上进行测试:
> Number.isFinite(intVar); true > Number.isFinite(floatVar); true > Number.isFinite(stringVar); false > Number.isFinite(nanVar); false > Number.isFinite(infinityVar); false > Number.isFinite(nullVar); false > Number.isFinite(undefined); false
结果令人满意。特殊的数字值以及所有非数字类型的变量都将会被忽略。如果想要检查某个变量是否为数字, Number.isFinite() 函数是最好的选择。
使用Number.isNaN()函数
标准的 Number 对象具有 isNaN() 方法。用来判断传入的参数值是否为 NaN。由于我们要检查变量是否为数字,所以需要在检查中要使用非运算符 !。
现在看看通过非运算符加 Number.isNaN() 函数能否只过滤数字:
> !Number.isNaN(intVar); true > !Number.isNaN(floatVar); true > !Number.isNaN(stringVar); true # 判断错误 > !Number.isNaN(nanVar); false > !Number.isNaN(infinityVar); true # 判断错误 > !Number.isNaN(nullVar); true # 判断错误 > !Number.isNaN(undefinedVar); true # 判断错误
这种方法相当宽松,因为它接受的值根本不是数字。这种方法最适合在你知道自己的值是数字并且要检查它是否为 NaN 值的情况下,并不适合常规数字的。
使用typeof()函数
typeof() 函数是一个全局函数,它的参数可以接受变量或值,并返回其类型的字符串表示形式。JavaScript 共有 9 种类型:
undefined
boolean
number
string
bigint
symbol
object
null (typeof() 显示为对象)
function (对象的一种特殊类型)
为了验证变量是否为数字,我们只需要检查 typeof() 返回的值是否为 "number"。让我们尝试一下测试变量:
> typeof(intVar) == 'number'; true > typeof(floatVar) == 'number'; true > typeof(stringVar) == 'number'; false > typeof(nanVar) == 'number'; true # 判断错误 > typeof(infinityVar) == 'number'; true # 判断错误 > typeof(nullVar) == 'number'; false > typeof(undefined) == 'number'; false
typeof() 函数比 Number.isNaN() 好得多。它可以正确的判断 null 和 undefined 不是数字。但如果是 NaN 和 Infinity,它会返回 true。
“JavaScript怎么判断变量是否为数字”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!