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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
javascript函数库-集合框架
Apr 27 Javascript
js 调整select 位置的函数
Feb 21 Javascript
jQuery 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
Aug 11 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
jquery实现点击变换导航样式的方法
Aug 31 Javascript
vue通过watch对input做字数限定的方法
Jul 13 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
Jan 05 Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 Javascript
浅析 Vue 3.0 的组装式 API(一)
Aug 31 Javascript
js通过canvas生成图片缩略图
Oct 02 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防止sql注入代码实例
2013/12/18 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
JavaScript极简入门教程(二):对象和函数
2014/10/25 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
Vue $mount实战之实现消息弹窗组件
2019/04/22 Javascript
小程序实现搜索框
2020/06/19 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Element Rate 评分的使用方法
2020/07/27 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
js实现简易ATM功能
2020/10/27 Javascript
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python中常见错误及解决方法
2020/06/21 Python
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
华为慧通笔试题
2016/04/22 面试题
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
EJB面试题
2015/07/28 面试题
班级聚会策划书
2014/01/16 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
运动会拉拉队口号
2014/06/09 职场文书
集体生日活动方案
2014/08/18 职场文书
天坛导游词
2015/02/02 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL