关于javascript:JavaScript-中如何判断变量是否为数字

40次阅读

共计 2537 个字符,预计需要花费 7 分钟才能阅读完成。

作者:Marcus Sanatan
译者:前端小智
起源:stackabuse

104 程序狂欢节,前端开发工程师必读书籍有哪些值得举荐?

点赞再看,微信搜寻 【大迁世界】 关注这个没有大厂背景,但有着一股向上踊跃心态人。本文 GitHub https://github.com/qq44924588… 上曾经收录,文章的已分类,也整顿了很多我的文档,和教程材料。

大家都说简历没我的项目写,我就帮大家找了一个我的项目,还附赠【搭建教程】。

简介

JavaScript 是一种动静类型语言,这意味着解释器在运行时 确定变量的类型。实际上,这也容许咱们在雷同的代码中应用雷同的变量来存储不同类型的数据。如果没有文档和一致性,咱们在应用代码时并不总是晓得变量的类型。

当咱们冀望一个变量是数字时,对字符串或数组进行操作可能会在代码中导致奇怪的后果。在本文中,咱们将会介绍一些判断变量是否为数字的函数。

"10" 之类的数字的字符串不应被承受。在 JavaScript 中,诸如 NaNInfinity-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()函数查看变量是否为数字,还查看其是否为 无限值 。因而,对于NaNInfinity-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() 要好得多。它正确地确定了字符串变量 nullundefined不是数字。然而,对于 NaNInfinity,它返回true

只管从技术上来说这是正确的后果,但 NaNInfinity是非凡的数字值,对于大多数应用状况,咱们宁愿疏忽它们。

总结

在本文中,咱们学习了如何查看 JavaScript 中的变量是否为数字。Number.isNaN()函数仅在咱们晓得变量为数字并且须要验证它是否为NaN` 时才实用。

如果代码中有 NaNInfinity-Infinity以及其余数字,则 typeof()` 函数实用。

Number.isFinite()办法捕捉所有无限数,是最适宜咱们的要求。


代码部署后可能存在的 BUG 没法实时晓得,预先为了解决这些 BUG,花了大量的工夫进行 log 调试,这边顺便给大家举荐一个好用的 BUG 监控工具 Fundebug。

原文:https://stackabuse.com/javasc…

交换

文章每周继续更新,能够微信搜寻「大迁世界」第一工夫浏览和催更(比博客早一到两篇哟),本文 GitHub https://github.com/qq449245884/xiaozhi 曾经收录,整顿了很多我的文档,欢送 Star 和欠缺,大家面试能够参照考点温习,另外关注公众号,后盾回复 福利,即可看到福利,你懂的。

正文完
 0