需求

数值,或者数值型字符串,比如"123"可以通过校验。
其他类型不能通过校验。

举例

输入 结果
145
“145”
“145ccc” ×
true ×
undefined ×
null ×
对象 ×

分析

首先要明确,js中一共有7种数据类型:
数值字符串布尔值undefinednull对象symbol(ES6)
其中,对象包括:狭义的对象(object);数组(array);函数(function)
根据需求,我们需要的是先判断是数值或字符串,然后排除掉非数值型字符串

判断数据类型

js用来判断数据类型的方法有3个:
typeofinstanceofObject.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

注意定义和以下两条规则即可。

定义:用于将一个字符串转为整数/浮点数

  1. 如果参数不是字符串或者字符串的第一个字符不能转化为整数 / 浮点数,则返回NaN
    e.g.
parseFloat([]) // NaN
parseFloat('F235') // NaN
parseFloat('') // NaN
  1. 如果字符串包含不能转为整数/浮点数的字符,则不再进行往后转换返回已经转好的部分
    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的数据类型相关推荐

  1. html file验证文件是否上传,JavaScript判断文件上传类型的方法

    本文实例展示了JavaScript判断文件上传类型的方法,是一个非常常用的技巧.具体实现方法如下: 文件上传时用到一个功能,使用html元素的input标签实现: 选中图片后立即触发onchange事 ...

  2. javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器

    判断浏览器类型 复制代码代码如下: if ( window.sidebar && "object" == typeof( window.sidebar ) & ...

  3. python提供的三种基本数值类型_Python 基础数据类型-数值类型

    Python 基础数据类型-数值类型 为什么会有数据类型?[了解] 更好分配管理内存 方便统一管理 更贴近人类分类管理习惯 数据类型种类 [熟悉] 数值类型:int.bool.float.comple ...

  4. python提供了两种基本的数值类型_Python 基本数据类型

    Python 基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型&q ...

  5. JavaScript(三)数值类型

    整数和浮点数 JavaScript内部存储数字都是按64位浮点类型存储的,无论整数和小数.容易造成混淆的是,某些位运算必须要整数才可以运行,所以会自动将64位浮点数转化为32位整数.再进行位运算.在J ...

  6. JavaScript判断对象 是什么类型的.

    // 这种方法不起作用 if (x == undefined) { // 作某些操作 } // 这个方法同样不起作用- if (typeof(x) == undefined) { // 作某些操作 } ...

  7. python数值类型教程_数据类型详细篇:数值

    数据类型详细篇:数值 Python 的数值可以表示三种类型的数据: 整数 :可以表示正数,例如 123:可以表示负数,例如 123:使用 0 表示零. 浮点数:浮点数由整数部分与小数部分组成,例如 1 ...

  8. python提供了两种基本的数值类型_Python基本数据类型

    欢迎来到子奇的小屋 你可知道Python有哪些基本数据类型? No.1 数字类型及操作 数字类型 可正可负,无取值范围 4种进制表示类型十进制:同阿拉伯数字 二进制:以0b或0B开头 八进制:以0o或 ...

  9. .Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)...

    前一篇发出来后引发了积极的探讨,起到了抛砖引玉效果,感谢大家参与. 吐槽一下:这个问题比其看起来要难得多得多啊. 大家的讨论最终还是没有一个完全正确的答案,不过我根据讨论结果总结了一个差不多算是最终版 ...

最新文章

  1. android studio ndk 书籍,NDK 在AndroidStudio3.2.1版本集成方法(ndk-build方式)
  2. 基于OpenCV调整图像的对比度和亮度
  3. 编码 data:text/html;c,iOS 用TFHpple抓取GB-2312编码的html页面,页面返回编码错误
  4. 【OS】课设记录总结+进程整理
  5. 【Java】数据结构—— 单链表和双链表
  6. 闺女在大连上大学,一个月1500生活费她说少
  7. 用于快速排查Java的CPU性能问题(top us值过高)
  8. Java框架之SpringMVC 05-拦截器-异常映射-Spring工作流程
  9. Android AIDL实例解析
  10. 《How to Use the TimeDistributed Layer for Long Short-Term Memory Networks in Python》学习笔记
  11. Vuex actions 异步操作基础
  12. Java中如何删除文件呢?
  13. vnc远程控制软件怎么用,在Windows中vnc远程控制软件怎么用
  14. 域名邮箱用GMAIL,live
  15. linux双线路由,linux双线路由配置方法介绍
  16. AI笔记: 数学基础之方向导数的计算和梯度
  17. 用python做一个好玩的数字炸弹游戏
  18. 启动管理-启动流程-启动过程(有流程图)
  19. Alpha、Beta、RC、GA等版本的区别
  20. LeetCode——1888. 使二进制字符串字符交替的最少反转次数(Minimum Number of Flips to Make the Binary ...)[中等]——分析及代码(Java)

热门文章

  1. STM32CubeMX点灯
  2. Unity实现模型点击
  3. ASPICE-汽车软件过程改进及能力评定
  4. JERK、Junction Deviation、Linear Advance
  5. macOS 系统向日葵远程控制鼠标无法点击的问题
  6. Jstorm基础知识
  7. 【mpvue】小程序开发入门
  8. android ratingbar 点击事件,Android RatingBar基本使用:
  9. 灰色关联分析及MATLAB实现
  10. 北斗三号频点_一种北斗三代RNSS多频点接收模块的制作方法