JavaScript 中判断变量是否为数字的示例代码


Posted in Javascript onOctober 22, 2020

简介

JavaScript 是一种动态类型语言,这意味着解释器在运行时确定变量的类型。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据。如果没有文档和一致性,我们在使用代码时并不总是知道变量的类型。

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()返回的值是否为`"number"。让我们尝试一下测试变量:

> 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()`函数适用。

Number.isFinite()方法捕获所有有限数,是最适合我们的要求。

到此这篇关于JavaScript 中判断变量是否为数字的示例代码的文章就介绍到这了,更多相关js判断变量为数字内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
简单的无缝滚动程序-仅几行代码
May 08 Javascript
JavaScript this调用规则说明
Mar 08 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
jQuery插件formValidator实现表单验证
May 23 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
Jun 12 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
Vue 全家桶实现移动端酷狗音乐功能
Nov 16 Javascript
JS Math对象与Math方法实例小结
Jul 05 Javascript
在js文件中引入(调用)另一个js文件的三种方法
Sep 11 Javascript
基于JavaScript实现简单的轮播图
Mar 03 Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 #Javascript
jquery实现抽奖功能
Oct 22 #jQuery
Vue实现简单的留言板
Oct 23 #Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 #Javascript
JavaScript实现简易计算器小功能
Oct 22 #Javascript
vue实现简单加法计算器
Oct 22 #Javascript
微信小程序实现选项卡滑动切换
Oct 22 #Javascript
You might like
理解PHP5中static和const关键字的区别
2007/03/19 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
php上传文件问题汇总
2015/01/30 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
js 获取html5的data属性实现方法
2017/07/28 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
js cavans实现静态滚动弹幕
2020/05/21 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
Python中实现对list做减法操作介绍
2015/01/09 Python
Python读写文件方法总结
2015/06/09 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
pyspark 随机森林的实现
2020/04/24 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
东方电视购物:东方CJ
2016/10/12 全球购物
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
戴尔英国官网:Dell英国
2017/05/27 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
管理学院毕业生自荐信范文
2014/03/10 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
信息简报范文
2015/07/21 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS