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 相关文章推荐
extjs 学习笔记(一) 一些基础知识
Oct 13 Javascript
Jquery图片滚动与幻灯片的实例代码
Apr 08 Javascript
js获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
JS动态给对象添加事件的简单方法
Jul 19 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 Javascript
js如何实现元素曝光上报
Aug 07 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 Javascript
layui数据表格重载实现往后台传参
Nov 15 Javascript
解决vue中的无限循环问题
Jul 27 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
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
JS Timing
2007/04/21 Javascript
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
JS利用正则表达式实现简单的密码强弱判断实例
2017/06/16 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python字符串格式化输出方法分析
2016/04/13 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
自动化系在校本科生求职信
2013/10/23 职场文书
期末总结的个人自我评价
2013/11/02 职场文书
思想汇报范文
2013/11/04 职场文书
上学迟到的检讨书
2014/01/11 职场文书
决心书标准格式
2014/03/11 职场文书
导游个人求职信范文
2014/03/23 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
2014年社区重阳节活动策划方案
2014/09/16 职场文书
高校教师个人总结
2015/02/10 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL