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 金额文本框实现代码
Feb 14 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
Jul 01 Javascript
用jquery方法操作radio使其默认选项是否
Sep 10 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
浅谈vue路径优化之resolve
Oct 13 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
微信小程序身份证验证方法实现详解
Jun 28 Javascript
Preload基础使用方法详解
Feb 03 Javascript
vue实现简易的双向数据绑定
Dec 29 Vue.js
关于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
解析argc argv在php中的应用
2013/06/24 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php中session与cookie的比较
2015/01/27 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
JS获取select-option-text_value的方法
2013/12/26 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
ptyhon实现sitemap生成示例
2014/03/30 Python
Python3实现生成随机密码的方法
2014/08/23 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
python+opencv实现动态物体追踪
2018/01/09 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
python爬虫之遍历单个域名
2019/11/20 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
高一物理教学反思
2014/01/24 职场文书
关于旷工的检讨书
2014/02/02 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
《雷雨》教学反思
2016/02/20 职场文书