跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 选品工具 > js判断是否为数字的几种方式

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

时间:2024-04-05 18:45:29 来源:网络cs 作者:言安琪 栏目:选品工具 阅读:

标签: 方式  数字  判断 

一、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);   // trueNumber.isInteger('1'); // falseNumber.isInteger(1.1); // false

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

二、parseInt、parseFloat

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

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

三、isNaN、isFinite

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

四、Number.isNaN、Number.isFinite

Number.isNaN(value),如果valueNaN返回true,否则返回falseNumber.isFinite(value),如果value为数值,且不等于Infinity-Infinity返回true,否则返回false。和全局函数isNaN()相比,Number.isNaN() 不会自行将参数转换成数字,只有在参数是值为 NaN 的数字时,才会返回 true
Number.isNaN(NaN);        // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0)       // trueNumber.isNaN(true); // falseNumber.isNaN(false); // falseNumber.isNaN(null); // falseNumber.isNaN(undefined); // falseNumber.isNaN(''); // falseNumber.isNaN('123'); // falseNumber.isNaN(123); // falseNumber.isNaN('abc'); // falseNumber.isFinite(true); // falseNumber.isFinite(false); // falseNumber.isFinite(null); // falseNumber.isFinite(undefined); // falseNumber.isFinite(''); // falseNumber.isFinite('123'); // falseNumber.isFinite(123); // trueNumber.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');   // trueexp.test('a123'); // falseexp.test(123); // true

参考

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

本文链接:https://www.kjpai.cn/news/2024-04-05/154552.html,文章来源:网络cs,作者:言安琪,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论