简介JAVAScript 是一种动态类型语言,这意味着解释器在运行时确定变量的类型 。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据 。如果没有文档和一致性,我们在使用代码时并不总是知道变量的类型 。
当我们期望一个变量是数字时,对字符串或数组进行操作可能会在代码中导致奇怪的结果 。在本文中,我们将会介绍一些判断变量是否为数字的函数 。
像"10"之类的数字的字符串不应被接受 。在JavaScript中,诸如NaN,Infinity和-Infinity之类的特殊值也是数字类型的 。
根据这些要求,最好使用的函数是内置Number对象中的isFinite()函数 。但是,开发人员通常会使用其他函数,如Number.isNaN()和typeof()函数 。
我们先创建一些变量:
let intVar = 2;let floatVar = 10.5;let stringVar = '4';let nanVar = NaN;let infinityVar = Infinity;let nullVar = null;let undefinedVar = 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(intVar);true> !Number.isNaN(floatVar);true> !Number.isNaN(stringVar);true # Wrong> !Number.isNaN(nanVar);false> !Number.isNaN(infinityVar);true # Wrong> !Number.isNaN(nullVar);true # Wrong> !Number.isNaN(undefinedVar);true # Wrong
这个方法是相当宽松的,因为它接受根本不是数字的值 。这种方法最适合于当你知道你有一个数字并且要检查它是否是一个NaN值时,而不是一般的数字检查 。
使用 typeof() 方法typeof()函数是一个全局函数,它接受变量或值作为参数,并返回其类型的字符串表示 。JavaScript 总共有9种类型
- undefined
- boolean
- number
- string
- bigint
- symbol
- object
- null (typeof() 显示的是 object)
- function (一种特殊类型的 object)
> typeof(intVar) == 'number';true> typeof(floatVar) == 'number';true> typeof(stringVar) == 'number';false> typeof(nanVar) == 'number';true # Wrong> typeof(infinityVar) == 'number';true # Wrong> typeof(nullVar) == 'number';false> typeof(undefined) == 'number';false
typeof()函数的性能比Number.isNaN()要好得多 。它正确地确定了字符串变量null和undefined不是数字 。但是,对于NaN和Infinity,它返回true 。尽管从技术上来说这是正确的结果,但NaN和Infinity是特殊的数字值,对于大多数使用情况,我们宁愿忽略它们 。
总结在本文中,我们学习了如何检查JavaScript中的变量是否为数字 。Number.isNaN()函数仅在我们知道变量为数字并且需要验证它是否为NaN`时才适用 。
如果代码中有NaN,Infinity或-Infinity以及其他数字,则 typeof()`函数适用 。
【JavaScript 中如何判断变量是否为数字】Number.isFinite()方法捕获所有有限数,是最适合我们的要求 。
推荐阅读
- Mycat数据库中间件
- 隆平茶业招商加盟信息,正皓茶业全国招商火热进行中
- 糖尿病|可能会让女人看起来比实际年龄更老的8个小错误,你中招了吗
- 小山村中养真龙凤凰书名叫什么?
- 中国古代写诗最多的人是谁?
- 高分学长教你如何学好高一生物
- 中考考生需养成的11种学习习惯
- |晚春夜钓正当时,掌握5个“钻石技巧”,下杆就中鱼,可轻松爆护
- 隆中茶的故事渊源,西施与宜兴的渊源
- 春季如何养肝护肝 5款药膳粥护好小心肝