JavaScript判断是否为数值类型 - js的数据类型
需求
数值,或者数值型字符串,比如"123"可以通过校验。
其他类型不能通过校验。
举例
输入 | 结果 |
---|---|
145 | √ |
“145” | √ |
“145ccc” | × |
true | × |
undefined | × |
null | × |
对象 | × |
分析
首先要明确,js中一共有7种数据类型:
数值;字符串;布尔值;undefined;null;对象;symbol(ES6)
其中,对象包括:狭义的对象(object);数组(array);函数(function)
根据需求,我们需要的是先判断是数值或字符串,然后排除掉非数值型字符串
判断数据类型
js用来判断数据类型的方法有3个:
typeof,instanceof,Object.prototype.toString,其中,typeof对各数据类型的结果如下:
数据类型 | 特例 | typeof运算结果 |
---|---|---|
数值 | “number” | |
字符串 | “string” | |
布尔值 | “boolean” | |
undefined | “undefined” | |
null | “object” | |
对象 | “object” | |
函数 | “function” | |
Symbol | “symbol” |
可知,如果使用typeof可以找到数值和字符串类型。
排除非数值型字符串
js中用于将字符串转换成数值的方法包括:Number、parseInt、parseFloat
Number
Number的转换结果如下:
数据类型 | 特例 | typeof运算结果 |
---|---|---|
数值 | 数值 | |
字符串 | NaN | |
数值型字符串 | 数值 | |
空字符串 | 0 | |
布尔值 | 0/1 | |
undefined | NaN | |
null | 0 | |
对象 | NaN | |
单元素数组 | 元素值 | |
空数组 | 0 |
parseInt、parseFloat
注意定义和以下两条规则即可。
定义:用于将一个字符串转为整数/浮点数
- 如果参数不是字符串,或者字符串的第一个字符不能转化为整数 / 浮点数,则返回NaN
e.g.
parseFloat([]) // NaN
parseFloat('F235') // NaN
parseFloat('') // NaN
- 如果字符串包含不能转为整数/浮点数的字符,则不再进行往后转换,返回已经转好的部分。
e.g.
parseFloat('3.14more non-digit characters') // 3.14
综上,可知,不能使用parseInt和parseFloat来判断数值型字符串,因此,只能使用Number方法。
补充
Number、parseInt、parseFloat都会自动过滤字符串前导和后缀的空格
解决方法
typeof value === 'number' || (typeof value === 'string' && value !== ''&&!isNaN(Number(value)))
JavaScript判断是否为数值类型 - js的数据类型相关推荐
- html file验证文件是否上传,JavaScript判断文件上传类型的方法
本文实例展示了JavaScript判断文件上传类型的方法,是一个非常常用的技巧.具体实现方法如下: 文件上传时用到一个功能,使用html元素的input标签实现: 选中图片后立即触发onchange事 ...
- javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器
判断浏览器类型 复制代码代码如下: if ( window.sidebar && "object" == typeof( window.sidebar ) & ...
- python提供的三种基本数值类型_Python 基础数据类型-数值类型
Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...
- python提供了两种基本的数值类型_Python 基本数据类型
Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...
- JavaScript(三)数值类型
整数和浮点数 JavaScript内部存储数字都是按64位浮点类型存储的,无论整数和小数.容易造成混淆的是,某些位运算必须要整数才可以运行,所以会自动将64位浮点数转化为32位整数.再进行位运算.在J ...
- JavaScript判断对象 是什么类型的.
// 这种方法不起作用 if (x == undefined) { // 作某些操作 } // 这个方法同样不起作用- if (typeof(x) == undefined) { // 作某些操作 } ...
- python数值类型教程_数据类型详细篇:数值
数据类型详细篇:数值 Python 的数值可以表示三种类型的数据: 整数 :可以表示正数,例如 123:可以表示负数,例如 123:使用 0 表示零. 浮点数:浮点数由整数部分与小数部分组成,例如 1 ...
- python提供了两种基本的数值类型_Python基本数据类型
欢迎来到子奇的小屋 你可知道Python有哪些基本数据类型? No.1 数字类型及操作 数字类型 可正可负,无取值范围 4种进制表示类型十进制:同阿拉伯数字 二进制:以0b或0B开头 八进制:以0o或 ...
- .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)...
前一篇发出来后引发了积极的探讨,起到了抛砖引玉效果,感谢大家参与. 吐槽一下:这个问题比其看起来要难得多得多啊. 大家的讨论最终还是没有一个完全正确的答案,不过我根据讨论结果总结了一个差不多算是最终版 ...
最新文章
- android studio ndk 书籍,NDK 在AndroidStudio3.2.1版本集成方法(ndk-build方式)
- 基于OpenCV调整图像的对比度和亮度
- 编码 data:text/html;c,iOS 用TFHpple抓取GB-2312编码的html页面,页面返回编码错误
- 【OS】课设记录总结+进程整理
- 【Java】数据结构—— 单链表和双链表
- 闺女在大连上大学,一个月1500生活费她说少
- 用于快速排查Java的CPU性能问题(top us值过高)
- Java框架之SpringMVC 05-拦截器-异常映射-Spring工作流程
- Android AIDL实例解析
- 《How to Use the TimeDistributed Layer for Long Short-Term Memory Networks in Python》学习笔记
- Vuex actions 异步操作基础
- Java中如何删除文件呢?
- vnc远程控制软件怎么用,在Windows中vnc远程控制软件怎么用
- 域名邮箱用GMAIL,live
- linux双线路由,linux双线路由配置方法介绍
- AI笔记: 数学基础之方向导数的计算和梯度
- 用python做一个好玩的数字炸弹游戏
- 启动管理-启动流程-启动过程(有流程图)
- Alpha、Beta、RC、GA等版本的区别
- LeetCode——1888. 使二进制字符串字符交替的最少反转次数(Minimum Number of Flips to Make the Binary ...)[中等]——分析及代码(Java)