返回顶部
首页 > 资讯 > 精选 >JavaScript判断是否为数字的方式有哪些
  • 814
分享到

JavaScript判断是否为数字的方式有哪些

2023-07-02 09:07:21 814人浏览 薄情痞子
摘要

本篇内容主要讲解“javascript判断是否为数字的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript判断是否为数字的方式有哪些”吧!1. typeof、instan

本篇内容主要讲解“javascript判断是否为数字的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript判断是否为数字的方式有哪些”吧!

1. typeof、instanceof、Number.isInteger

typeof判断值是不是基本类型number,比如:

let num = 1;typeof num === 'number'; // true

instanceof判断值是不是包装类Number,比如:

let num = new Number(1);num instanceof Number; // true

Number.isInteger判断值是否是整数:

Number.isInteger(1);   // trueNumber.isInteger('1'); // falseNumber.isInteger(1.1); // false

这几种方式的缺点,都是只能基于类型判断,无法判断字符串是否是数值。

2. parseInt、parseFloat

这个方法的特点,一句话,返回字符串开头最长的有效数字。

我们可以用!isNaN(parseFloat(value))来判断字符串是否是数值。

let str1 = '123';let str2 = 'abc';!isNaN(parseFloat(str1)); // true,是数字!isNaN(parseFloat(str2)); // false,不是数字

parseInt和parseFloat解析的时候遇到非法字符结束,返回解析到的数值。也就是说只要字符串头部是合法数值,那么就能解析出数值,哪怕整体不是数值。比如123abc,会被解析程123。

因此,上面的判断方式还不够严谨,下面的终极方案是比较严谨的方式。

3. isNaN、isFinite

在介绍这两个方法之前,先讲下NaN,它表示Not-a-Number。两个NaN无法直接比较相等,因为我们只知道它不是数值,是啥不确定,也就无法比较相等。

NaN === NaN;         // falseNaN == NaN;          // falseObject.is(NaN, NaN); // false
  • isNaN(value),如果ToNumber(value)的结果为NaN返回true,否则返回false。

  • isFinite(value),如果ToNumber(value)的结果为数值,且不等于Infinity或-Infinity返回true,否则返回false。

isNaN和isFinite都会先将传入的值转成数值,再进行判断。ToNumber的规则跟直接使用Number函数一样。一些非数值在类型转换的时候都能转成数值,比如:

Number(true);         // 1Number(false);        // 0Number(null);         // 0Number('');           // 0

对null、true、false、''使用isNaN结果都是false,但是它们本身不是数值,因此不能单独使用isNaN。

4. Number.isNaN、Number.isFinite

这两个方法跟对应的全局方法是不一样的。

  • Number.isNaN(value),如果value为NaN返回true,否则返回false。

  • Number.isFinite(value),如果value为数值,且不等于Infinity或-Infinity返回true,否则返回false。

区别是全局方法会有强制类型转换,而这两个方法没有强制类型转换:

Number.isNaN(null);      // trueNumber.isNaN(true);      // trueNumber.isNaN(false);     // trueNumber.isNaN('');        // true

可以看,由于没有类型转换,所以Number.isNaN判断null、true、false、''的结果都是true。

但是“副作用”是数字字符串也会得到true:

Number.isNaN('123');    // true

Number.isNaN等价与:

Number.isNaN = Number.isNaN || function(value) {    return typeof value === "number" && isNaN(value);}

而Number.isFinite等价于:

if (Number.isFinite === undefined) Number.isFinite = function(value) {    return typeof value === 'number' && isFinite(value);}

因此,这两个方法本质上也是基于类型的,没法判断一个字符串是否为数值。

5. 正则表达式

let exp = /^[+-]?\d*(\.\d*)?(e[+-]?\d+)?$/;exp.test('+1.9');   // trueexp.test('-.1e11'); // true

这个正则可以判断整数、浮点数、正负数和科学计数法。

不过我觉得判断是否是数值用正则,有点小题大做了。

6. 终极方案(推荐)

我们先看方案:

!isNaN(parseFloat(value)) && isFinite(value);

这其实是Jquery中$.isNumeric的源码,多么简洁且优雅。

接下来我们看看它的原理,我们以字符串123abc为例,我们应该得到false。

  1. parseFloat('123abc')得到123;

  2. !isNaN(123)得到true;

  3. isFinite('123abc')得到false;

  4. 最终结果为false。

单独使用!isNaN(parseFloat(value))会将123abc当成数值,所以用isFinite额外判断一次,isFinite的另一个作用是排除无穷数。

!isNaN(parseFloat(Infinity));  // true!isNaN(parseFloat(Infinity)) && isFinite(Infinity); // false

而且,因为parseFloat的解析是纯字符串解析,没有类型转换,所以不会将null、true、false、''当成数值。

!isNaN(parseFloat(null)) && isFinite(null);   // false!isNaN(parseFloat(true)) && isFinite(true);   // false!isNaN(parseFloat(false)) && isFinite(false); // false!isNaN(parseFloat('')) && isFinite('');       // false

到此,相信大家对“JavaScript判断是否为数字的方式有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: JavaScript判断是否为数字的方式有哪些

本文链接: https://lsjlt.com/news/340911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript判断是否为数字的方式有哪些
    本篇内容主要讲解“JavaScript判断是否为数字的方式有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript判断是否为数字的方式有哪些”吧!1. typeof、instan...
    99+
    2023-07-02
  • JavaScript判断是否为数字的方法
    这篇文章主要讲解了“JavaScript判断是否为数字的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript判断是否为数字的方法”吧!JavaScript判断是否为数字的方...
    99+
    2023-06-14
  • javascript判断值是否为数字的方法
    这篇“javascript判断值是否为数字的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“javascript判断值是否为数字的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过...
    99+
    2023-06-06
  • javascript判断是否为数字类型的方法
    小编给大家分享一下javascript判断是否为数字类型的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法:1、利用typeof关键字和isNaN()函数判断;2、利用typeof关键字和isFinite()函数判断...
    99+
    2023-06-14
  • Java判断字符串是否为整数的方法有哪些
    一、使用Java自带的函数isDigit()函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ ...
    99+
    2018-12-09
    Java 判断 字符串 整数 方法
  • JavaScript判断一个对象是否为数组的方法有哪些
    这篇文章主要介绍了JavaScript判断一个对象是否为数组的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在 JS 中使用数组是一种常见操作,有时在开发中,获得一...
    99+
    2023-06-14
  • JavaScript判断是否为数字的几种方式汇总(推荐!)
    目录前言1. typeof、instanceof、Number.isInteger2. parseInt、parseFloat3. isNaN、isFinite4. Number.i...
    99+
    2024-04-02
  • javascript判断是否为函数的方法
    这篇文章将为大家详细讲解有关javascript判断是否为函数的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在javascript中,可以借助typeof和“===”操作符来判断是否为函数,语法格式...
    99+
    2023-06-14
  • java中判断字符串是否为空的方法有哪些
    方法一: if(StringUtils.isNotBlank(str))//判断字符串不为空 或if(StringUtils.isBlank(str))//判断字符串为空方法二: if(s == null ||"".equal...
    99+
    2015-05-09
    java 判断 字符串 为空 方法
  • java判断是否为数字
    java中判断是否是数字的方法:方法一:用JAVA自带的函数isDigit()方法判断isDigit() 方法用于判断指定字符是否为数字。如果字符为数字,则返回 true;否则返回 false。public static boolean i...
    99+
    2015-01-06
    java基础 java
  • java判断字符是否为数字的方法
    java判断字符是否为数字的方法:(推荐:java视频教程)使用Character.isDigit(char)判断char num[] = str.toCharArray();//把字符串转换为字符数组 StringBuffer title...
    99+
    2016-02-23
    java
  • php判断字段是否不为空的常见方法有哪些
    这篇文章主要介绍“php判断字段是否不为空的常见方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php判断字段是否不为空的常见方法有哪些”文章能帮助大家解决问题。方法一:使用isset()函...
    99+
    2023-07-05
  • java判断string是否为数字的方法
    java中判断字符串是否为数字的方法:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System...
    99+
    2022-01-16
    java
  • javascript怎么判断是否数字
    这篇文章给大家分享的是有关javascript怎么判断是否数字的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。javascript判断是否数字的方法:1、使用【isNaN()】函数,是js自带的全局函数;2、使用正...
    99+
    2023-06-14
  • java判断字符是否为数字
    java中判断字符是否数字的方法:(推荐:java视频教程)方法一:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();-...
    99+
    2021-06-10
    java基础 java
  • Java判断ip是否为IPV4或IPV6地址的方式有哪些
    今天小编给大家分享一下Java判断ip是否为IPV4或IPV6地址的方式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-07-05
  • JavaScript 中如何判断变量是否为数字
    这篇文章将为大家详细讲解有关JavaScript 中如何判断变量是否为数字,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先创建一些测试变量:let&nbs...
    99+
    2024-04-02
  • JavaScript 中怎么判断变量是否为数字
    这篇文章给大家介绍JavaScript 中怎么判断变量是否为数字,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。当我们期望一个变量是数字时,对字符串或数组进行操作可能会在代码中导致奇怪的...
    99+
    2024-04-02
  • JavaScript判断数据类型的方式有哪些
    这篇文章主要介绍“JavaScript判断数据类型的方式有哪些”,在日常操作中,相信很多人在JavaScript判断数据类型的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript判断数...
    99+
    2023-07-05
  • java判断字符串是否为数字的方法
    Java中判断字符串是否为数字可以使用以下方法:1. 使用正则表达式判断:public static boolean isNumer...
    99+
    2023-05-13
    java判断字符串 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作