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 相关文章推荐
类似框架的js代码
Nov 09 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
javascript显示用户停留时间的简单实例
Aug 05 Javascript
基于JQuery制作可编辑的表格特效
Dec 23 Javascript
jQuery fadeOut 异步实例代码详解
Aug 18 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
Jun 12 Javascript
深入理解requireJS-实现一个简单的模块加载器
Jan 15 Javascript
react-navigation之动态修改title的内容
Sep 26 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 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实现今天是星期几的几种写法
2013/09/26 PHP
PHP6新特性分析
2016/03/03 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
jQuery ui 1.7更新小结
2009/08/15 Javascript
js获取当前select 元素值的代码
2010/04/19 Javascript
jquery获取input的value问题说明
2010/08/19 Javascript
jquery弹出关闭遮罩层实例
2013/08/06 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
详解Javascript获取缓存和清除缓存API
2017/05/25 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
JSON.stringify()方法讲解
2019/01/31 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Python语言快速上手学习方法
2018/12/14 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
Python flask框架post接口调用示例
2019/07/03 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
智利最大的网上商店:Linio智利
2016/11/24 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
揭牌仪式策划方案
2014/05/28 职场文书
五好关工委申报材料
2014/05/31 职场文书
2015年教务工作总结
2015/05/23 职场文书
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android