javascript的全局函数有哪些(java冒泡排序)

前端开发工程师必读书籍有哪些值得推荐?文本已经过DavidAtanda授权翻译。简介JavaScript是一种动态类型语言,这意味着解释器在运行时确定变量的类型。实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据。如果没有文

前端开发工程师必读书籍有哪些值得推荐?

文本已经过 David Atanda 授权翻译。

简介

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()方法捕获所有有限数,是最适合我们的要求。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/20047.html

(0)
新劵
上一篇 2021-09-02
下一篇 2021-09-02

相关推荐

  • 开端电视剧免费观看全集完整版_开端百度云全集_开端在线看地址

    摘要:部剧真的太高了,给我看!一口气看完六集,突然发现了一个问题。鹤云和李诗情在45路公交车上不断爆炸,现实中,案件随着循环取得了新的突破。部剧真的太高了,给我看!一口气看完六集,突然发现了一个问题。鹤云和李诗情在45路

    2022-01-19
    0
  • 阿里云视频直播服务(直播服务器搭建方法)

    东京奥运会已落下帷幕。比赛期间,全球亿万观众蜂拥至各大转播平台观看奥运赛事,平台直播能力显的尤为重要。阿里云作为视频直播平台的技术提供商,凭借在产品技术、资源带宽、服务保障等方面优势,可为各大转播平台提供全链路技术支持和保障,确保极致观赛体验。本文分

    2021-09-17 科技
    0
  • 小雪节气是几九2022(小雪是数九吗)

    24节气虽然是从古时候流传到现在的,但其实现在来说也是特别有参考意义的,尤其是对于气候和季节的变化,以及农事活动的进行,都还是非常有用的。比如小雪节气,它是冬季的第二个节气,表示这个时候气温降低开始下雪,但是因为还没有特

    2021-09-09 科技
    0
  • 日媒:菅义伟继任者或为岸田文雄(岸田文雄是谁)

    日本首相菅义伟宣布辞职之后大家都在猜测菅义伟的接任者会是谁,据日媒报道菅义伟继任者或为岸田文雄,那么岸田文雄是谁呢?此前岸田文雄提“四大支柱”也被媒体评价为冲刺自民党总裁“宝座”展开“猛攻”,下面就跟久久派小编来详细了解一下岸田文雄吧!日媒:菅义伟继任者或为岸

    2021-09-03
    0
  • windows自带的ssh工具是干什么的(windows10开启ssh服务)

    由于格式问题,部分链接、表格可能会失效,若失效请访问原文密码登录以及通过密钥实现免密码登录Dec15,2021阅读时长:6分钟简介Windowsterminal是新一代Windows终端

    2021-12-24
    0
  • win10变成win7最简单直接的方法(win10改win7系统)

    对于习惯Win7的用户来说,Win10系统不习惯是正常的,那么如果想改回Win7系统的话,在Win7安装之前需要修改主板BIOS设置,因为win10电脑默认开启了安全启动,这并不适合Win7系统。下面攒机之家来介绍一下Win10改Win7

    2021-12-11
    0

发表回复

登录后才能评论