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 新节点的创建 删除 的步骤
Jul 04 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
jQuery常用操作方法及常用函数总结
Jun 19 Javascript
JavaScript中string对象
Jun 12 Javascript
javascript背景时钟实现方法
Jun 18 Javascript
详解Javascript中的Object对象
Feb 28 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
全面了解javascript中的错误处理机制
Jul 18 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
Feb 22 Javascript
layui实现数据分页功能
Jul 27 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
JS实现悬浮球只在一侧滑动并且是横屏状态下
Aug 19 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
Zend Framework处理Json数据方法详解
2016/12/09 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
Vue官网todoMVC示例代码
2018/01/29 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
[51:26]VP vs VG 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
大学总结自我鉴定
2014/01/18 职场文书
班组安全员工作职责
2014/02/01 职场文书
职位说明书范文
2014/05/07 职场文书
退学证明范本3篇
2014/10/29 职场文书
2014年科室工作总结
2014/11/20 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang