温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JavaScript 中如何判断变量是否为数字

发布时间:2021-07-06 16:43:49 来源:亿速云 阅读:112 作者:Leah 栏目:web开发

这篇文章将为大家详细讲解有关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 中如何判断变量是否为数字就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI