博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript判断数据类型总结
阅读量:4581 次
发布时间:2019-06-09

本文共 2301 字,大约阅读时间需要 7 分钟。

原文:

  最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧!

一、JS中的数据类型

   1.数值型(Number):包括整数、浮点数。

   2.布尔型(Boolean)

   3.字符串型(String)

   4.对象(Object)

   5.数组(Array)

   6.空值(Null)

   7.未定义(Undefined)

二、判断一个变量的数据类型

1.数值型(number)

  比较常用的判断方法是:

1 function isNumber(val){
2 return typeof val === 'number';3 }

  但有些情况就不行,比如:

1 var a;2 alert(isNumber(parseInt(a)));

  这里弹出来的是true,如下图所示:

  但实际上变量a是NaN,它是不能用于数值运算的。

  所以上面的函数可以修改为:

1 function isNumber(val){2      return typeof val === 'number' && isFinite(val);3 }

修改了之后,弹出来的就是false,如下图所示:

  顺便介绍一下JavaScript isFinite() 函数,isFinite() 函数用于检查其参数是否是无穷大,如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false

2.布尔型(boolean)

  布尔类型的判断比较简单,可以用如下的方法进行判断:

1 /*2 判断变量val是不是布尔类型3 */4 function isBooleanType(val) {5     return typeof val ==="boolean";6 }

测试代码:

1 

运行结果:

  

3. 字符串(String)

  字符串类型的判断比较简单,可以用如下的方法进行判断:

1 /*2 判断变量是不是字符串类型3 */4 function isStringType(val) {5     return typeof val === "string";6 }

测试代码:

1 

运行结果:

4.未定义(Undefined)

  未定义的判断比较简单,可以用如下的方法进行判断:

1 /*2 判断变量是不是Undefined3 */4 function isUndefined(val) {5     return typeof val === "undefined";6 }

测试代码:

1 

运行结果:

5.对象(Object)

  由于当变量是空值Null时,typeof也会返回object,所以Object不能直接用 typeof 判断。

应该这样:

1 function isObj(str){2     if(str === null || typeof str === 'undefined'){3         return false;4     }5     return typeof str === 'object';6 }

测试代码:

1 

运行结果:

6.空值(Null)

  判断空值用 val === null 即可

1 function isNull(val){2       return  val === null;3 }

测试代码:

1 /* 2 判断变量是不是null 3 */ 4 function isNull(val){ 5      return  val === null; 6 } 7 /*测试变量*/ 8 var a; 9 var b = null;10 var c = "str";11 //弹出运行结果12 alert("变量a是null的判断结果是:"+isNull(a));//false13 alert("变量b是null类型的判断结果是:"+isNull(b));//true14 alert("变量c是null类型的判断结果是:"+isNull(c));//false

运行结果:

7.组(Array

  数组类型不可用typeof来判断。因为当变量是数组类型是,typeof会返回object

  这里有两种方法判断数组类型:

1 /*判断变量arr是不是数组 2 方法一 3 */ 4 function isArray1(arr) { 5     return Object.prototype.toString.apply(arr) === '[object Array]'; 6 } 7  8 /*判断变量arr是不是数组 9 方法二10 */11 function isArray2(arr) {12     if(arr === null || typeof arr === 'undefined'){13         return false;14     }15     return arr.constructor === Array;16 }

测试代码:

1 

运行结果:

  

posted on
2014-04-16 02:12 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/3667785.html

你可能感兴趣的文章
DVWA-CSRF
查看>>
ubuntu common software introduction
查看>>
资源相互引用时 需添加 PerformSubstitution=True
查看>>
MapRedece(单表关联)
查看>>
蒲公英App开发之检测新版本
查看>>
【安卓基础】倒计时按钮封装(验证码倒计时按钮)
查看>>
configparser模块
查看>>
SelectQueryBuilder的用法
查看>>
android的用户定位(一)
查看>>
creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
查看>>
IIS安装
查看>>
html块级元素和行级元素的区别和使用
查看>>
for循环嵌套
查看>>
寒冬夜行人
查看>>
poj1151 Atlantis
查看>>
HTML页面之间的参数传递
查看>>
java面试题集锦
查看>>
scikit-learn:4.2.3. Text feature extraction
查看>>
Spring Security构建Rest服务-0800-Spring Security图片验证码
查看>>
AE待整理
查看>>