js判断是否为数字的几种方式

这篇具有很好参考价值的文章主要介绍了js判断是否为数字的几种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、typeof、instanceof、Number.isInteger

  • typeof
    typeof判断值是不是基本类型number
const num = 1;
typeof num === 'number'; // true
  • instanceof
    instanceof判断值是不是包装类Number
const num = new Number(1);
num instanceof Number; // true
  • Number.isInteger
    Number.isInteger判断值是否是整数
Number.isInteger(1);   // true
Number.isInteger('1'); // false
Number.isInteger(1.1); // false

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

二、parseInt、parseFloat

parseIntparseFloat解析的时候遇到非法字符结束,返回解析到的数值。也就是说只要字符串头部合法数值,那么就能解析出数值,哪怕整体不是数值。比如123abc,会被解析程123文章来源地址https://www.toymoban.com/news/detail-591604.html

const a = '123abc';
parseFloat(a); // 123
const b = 'a123abc';
parseFloat(b); // NaN
const c = '0123abc';
parseFloat(c); // 123
const d = 'a0123abc';
parseFloat(d); // NaN

三、isNaN、isFinite

  • NaN,它表示Not-a-Number。两个NaN无法直接比较相等,因为我们只知道它不是数值,是啥不确定,也就无法比较相等。
  • isNaN(value),如果Number(value)的结果为NaN返回true,否则返回false
  • isFinite(value),如果Number(value)的结果为数值,且不等于Infinity-Infinity返回true,否则返回false
Number(true); // 1
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
Number(''); // 0
Number('123'); // 123
Number(123); // 123
Number('abc'); // NaN

isNaN(true); // false
isNaN(false); // false
isNaN(null); // false
isNaN(undefined); // true
isNaN(''); // false
isNaN('123'); // false
isNaN(123); // false
isNaN('abc'); // true

isFinite(true); // true
isFinite(false); // true
isFinite(null); // true
isFinite(undefined); // false
isFinite(''); // true
isFinite('123'); // true
isFinite(123); // true
isFinite('abc'); // false

四、Number.isNaN、Number.isFinite

  • Number.isNaN(value),如果valueNaN返回true,否则返回false
  • Number.isFinite(value),如果value为数值,且不等于Infinity-Infinity返回true,否则返回false
  • 和全局函数isNaN()相比,Number.isNaN() 不会自行将参数转换成数字,只有在参数是值为 NaN 的数字时,才会返回 true
Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0)       // true
Number.isNaN(true); // false
Number.isNaN(false); // false
Number.isNaN(null); // false
Number.isNaN(undefined); // false
Number.isNaN(''); // false
Number.isNaN('123'); // false
Number.isNaN(123); // false
Number.isNaN('abc'); // false

Number.isFinite(true); // false
Number.isFinite(false); // false
Number.isFinite(null); // false
Number.isFinite(undefined); // false
Number.isFinite(''); // false
Number.isFinite('123'); // false
Number.isFinite(123); // true
Number.isFinite('abc'); // false
  • 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);
}

五、正则表达式

const exp = /^[0-9]+.?[0-9]*/;
exp.test('123');   // true
exp.test('a123'); // false
exp.test(123); // true

参考

  • JavaScript 判断是否为数字的几种方式

到了这里,关于js判断是否为数字的几种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python 判断是否汉字的几种方法

    1. 使用Python内置的ord() ord()函数将字符转换为Unicode编码,然后判断其范围是否在汉字的范围内: 示例代码: 2. 使用Python内置的unicodedata库: 使用Python内置的unicodedata库可以用来判断一个字符是否为汉字 示例代码: 3. 使用正则表达式 可以使用正则表达式来判断一个字符是否为

    2024年02月12日
    浏览(76)
  • C++之判断文件是否存在的几种方法

    文章目录 1. 方法一:C语言之access 2. 方法二:C++方法之ifstream 3. 方法三:fopen方法 4. 方法四:sys中的stat函数方法 可以使用C语言中unistd.h里的函数access()来判断文件是否存在,其原型如下: filename是文件名,mode有下列几种方法: mode Description F_OK 测试文件是否存在 R_OK 测试文件

    2024年02月13日
    浏览(69)
  • JavaScript中 判断网络状态的几种方法

    1. 使用 Navigator onLine 属性 Navigator onLine 属性判断浏览器是否在线,在线返回 true,离线返回 false; Navigator onLine 是只读属性,所有主流浏览器都支持 onLine 属性; 2. 使用 ononline、onoffline 事件 这两个方法属于 “侦听器”,在网络连接 / 断开的瞬间会触发(当网络从离线变为在

    2024年01月24日
    浏览(49)
  • Java判断null的几种方式

    组内code review时,有同学提到字符串判断空值的写法,如下两种, (1)null在后, (2)null在前, 这两种写法,有什么区别? 这两个测试,都可以执行,有种解释是,null放在前面是为了避免少写一个\\\"=\\\",因为\\\"null=\\\"书写会报错,防止笔误写成\\\"=null\\\",不会报错,进而漏掉问题。

    2024年02月13日
    浏览(48)
  • C语言判断一个数是否是质数的几种常用方法(求100-1000以内的所有质数)

    要用代码判断一个数是否是质数,首先我们需要知道什么什么数称之为质数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。 以下有三种方法判定质数: 通过从2到n-1每个数均整除

    2024年02月08日
    浏览(94)
  • JavaScript深浅拷贝的几种方式

    深浅拷贝主要是针对于引用类型而言的 1. JSON.parse(JSON.strigify(Str)) JSON.stringify() 该方法用于将一个字转换为JSON字符串,该字符串符合JSON格式,并且可以被JSON.parse()方法还原。 对于原始类型的字符串,转换结果会带双引号 如果要转换的对象的属性是undefined,函数或xml对象,该

    2024年01月19日
    浏览(50)
  • JavaScript里实现继承的几种方式

    JavaScript 中的继承可以通过以下几种方式来实现: 1、原型链继承 :通过将子类的原型对象指向父类的实例来实现继承。这种方式的优点是实现简单,缺点是父类的私有属性和方法子类是不能访问的。   2、借用构造函数继承 :通过在子类的构造函数中调用父类的构造函数来

    2023年04月23日
    浏览(52)
  • JavaScript打开新窗口的几种方式

    window.location.href window.open 指定参数 NewUrl //’ 弹出窗口的地址; ‘newwindow’ //弹出窗口的名字,非必须,可用空’\\\'代替; height=600 //窗口高度; width=900 //窗口宽度; top=0 //窗口距离屏幕上方的象素值; left=0 //窗口距离屏幕左侧的象素值; toolbar=no //是否显示工具栏,yes为显示

    2024年02月14日
    浏览(39)
  • Java中验证日期时间字符串是否合法的几种方式

    第一种,JDK8之前用SimpleDateFormat类 可以使用SimpleDateFormat类来验证日期时间的格式和有效性。 首先,可以创建SimpleDateFormat对象,然后使用该对象的parse()方法来验证日期时间字符串的格式和有效性。如果该方法抛出异常,则表示日期时间字符串不符合指定的格式,而如果该方法

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包