当前位置: 首页 > Web前端 > HTML

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

时间:2023-03-28 16:31:08 HTML

微信搜索【大招天下】,前端行业动态,学习路径等第一时间分享给大家。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。简介JavaScript是一种动态类型语言,这意味着解释器在运行时确定变量的类型。其实这也让我们可以在同一个代码中使用同一个变量来存储不同类型的数据。没有文档和一致性,我们在使用代码时并不总是知道变量的类型。当我们期望变量是数字时,对字符串或数组进行操作可能会导致代码出现奇怪的结果。在本文中,我们将介绍一些判断变量是否为数字的函数。不应接受诸如“10”之类的数字字符串。在JavaScript中,NaN、Infinity、-Infinity等特殊值也是Number类型。基于这些要求,最好使用的函数是内置Number对象中的isFinite()函数。但是,开发人员经常使用其他函数,例如Number.isNaN()和typeof()函数。让我们先创建一些变量:letintVar=2;letfloatVar=10.5;letstringVar='4';letnanVar=NaN;letinfinityVar=Infinity;letnullVar=null;letundefinedVar=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(无穷大);假>Number.isFinite(nullVar);false>Number.isFinite(undefined);false这正是我们想要的。忽略特殊的非有限数字和任何非数字类型的变量。所以,如果你想检查一个变量是否是一个数字,最好的方法是使用Number.isFinite()函数。使用Number.isNaN()方法标准Number对象有一个isNaN()方法。它接受一个参数并确定它的值是否为NaN。由于我们要检查变量是否为数字,因此我们将使用not运算符!在检查中。>!Number.isNaN(intVar);true>!Number.isNaN(floatVar);true>!Number.isNaN(stringVar);true#错误>!Number.isNaN(nanVar);false>!Number.isNaN(infinityVar);true#Wrong>!Number.isNaN(nullVar);true#Wrong>!Number.isNaN(undefinedVar);true#Wrong这种方法相当宽松,因为它接受根本不是数字的值。当您知道有一个数字并想检查它是否为NaN值而不是检查一般数字时,这种方法最有效。使用typeof()方法typeof()函数是一个全局函数,它将变量或值作为参数并返回其类型的字符串表示形式。JavaScript一共有9种类型undefinedbooleannumberstringbigintsymbolobjectnull(typeof()showsobject)函数(一种特殊类型的对象)来验证一个变量是否是一个数字,我们只需要检查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';falsetypeof()函数性能比Number.isNaN()好很多。它正确地确定字符串变量null和undefined不是数字。但是,它对NaN和Infinity返回true。虽然这在技术上是正确的结果,但NaN和Infinity是我们在大多数用例中更愿意忽略的特殊数值。总结在本文中,我们学习了如何在JavaScript中检查变量是否为数字。Number.isNaN()函数仅在我们知道变量是一个数字并且需要验证它是否为NaN时才适用。如果您的代码中有NaN、Infinity或-Infinity以及其他数字,则typeof()`函数适用。Number.isFinite()方法捕获所有有限数,最适合我们的要求。编辑过程中可能存在的BUG无法实时获知。之后为了解决这些bug,花费了大量的时间在日志调试上。顺便推荐一个好用的BUG监控工具Fundebug。原文:https://stackabuse.com/javasc...交流有梦想,有干货,微信搜索【大招天下】关注这位大清早还在洗碗的洗碗智者。本文GitHubhttps://github.com/qq44924588...已收录,有完整的测试站点、资料和我的一线厂商访谈系列文章。