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
parseInt
和parseFloat
解析的时候遇到非法字符结束,返回解析到的数值
。也就是说只要字符串头部
是合法数值
,那么就能解析出数值,哪怕整体不是数值。比如123abc
,会被解析程123
。
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'); // NaNisNaN(true); // false
isNaN(false); // false
isNaN(null); // false
isNaN(undefined); // true
isNaN(''); // false
isNaN('123'); // false
isNaN(123); // false
isNaN('abc'); // trueisFinite(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)
,如果value
为NaN
返回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'); // falseNumber.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判断是否为数字的几种方式相关推荐
- JavaScript 判断是否为数字的几种方式
喜欢博主的文章,欢迎关注.点赞
- php 判断只能是数字和字母,PHP_JS只能输入数字或数字和字母等的正则表达式,JS判断只能是数字和小数点 0. - phpStudy...
JS只能输入数字或数字和字母等的正则表达式 JS判断只能是数字和小数点 0.不能输入中文 1) 2) function chkIt(frm){ if (frm.n1.value.length>0 ...
- js判断只能输入数字或小数点
JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input οnkeyup="this.value=this.value.replace(/\D/g,'' ...
- Js判断是否为数字,是否为空,是否为整形,是否为浮点型,是否为对象
Js判断是否为数字,是否为空,是否为整形,是否为浮点型,是否为对象 /**********************一.验证类*****************************/ //对象是否 ...
- js判断是否是数字简单方法
javascript 判断是否为数字,js 判断数字,javascript 判断数字,js 判断是否是数字 最简单的方法,当然还有其他的方法 例如正则表达式 //isNaN("要判断的变量& ...
- js 判断是否是数字类型变量
js 判断是否是数字类型变量 // js 判断是否是数字类型变量 const isNumber = (val) => typeof val === 'number' && val ...
- JS判断只能是数字和小数点
JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input οnkeyup="this.value=this.value.replace(/\D/g,'' ...
- js jquery新窗口打开的几种方式
js jquery新窗口打开的几种方式 第一种:创建一个form表单,通过表单提交来实现新标签页打开. var form = document.createElement('form'); form. ...
- js中唤醒弹框的3种方式
js中唤醒弹框的3种方式 1.alert() 警告框,只有确定按钮,常用于确保用户可以得到某些信息.需点击确定按钮才能继续操作. alert("ss") 2.confirm() 确 ...
最新文章
- git 给每个branch设置权限_自定义git命令阅读开源项目
- JspServlet之Cookie
- setup2go制作安装程序
- mysql 索引 测试_mysql的索引测试
- Oracle执行外部文件:
- php ajax无刷新翻页,php ajax 无刷新翻页实现代码
- python多线程没用_Python 的多线程原来不是真的多线程啊
- 算法59----打家劫舍【动态规划】
- LVS负载均衡的几种模式和算法
- Python_正则(设置pattern变量实例)
- 多智能体强化学习(一) IQL、VDN、QMIX、QTRAN算法详解
- pyecharts绘制K线
- 【人工智能】重磅发布人工智能与机器学习全景式概览
- 《计算机网络 自顶向下方法》读书笔记(三)
- ubtunu20.04 opencl 安装
- p720自带的磁带机备份aix系统
- 输入带空格的字符数组
- Hive设置连接用户名和密码
- visual studio 2019安装教程(详细的很)
- iso三体系认证有什么用