首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

只为成功找方法,不为失败找借口!

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

一、JS中的数据类型

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

   2.布尔型(Boolean)

   3.字符串型(String)

   4.对象(Object)

   5.数组(Array)

   6.空值(Null)

   7.未定义(Undefined)

二、判断一个变量的数据类型1.数值型(number)

比较常用的判断方法是:

1functionisNumber(val){2returntypeofval === 'number';3}

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

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

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

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

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

1functionisNumber(val){2returntypeofval === 'number' &&isFinite(val);3}

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

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

2.布尔型(boolean)

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

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

测试代码:

1

运行结果:

3. 字符串(String)

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

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

测试代码:

1

运行结果:

4.未定义(Undefined)

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

1/*2判断变量是不是Undefined3*/4functionisUndefined(val) {5returntypeofval === "undefined";6}

测试代码:

1

运行结果:

5.对象(Object)

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

应该这样:

1functionisObj(str){2if(str ===nulltypeofstr === 'undefined'){3returnfalse;4}5returntypeofstr === 'object';6}

测试代码:

1

运行结果:

6.空值(Null)

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

1functionisNull(val){2returnval ===null;3}

测试代码:

1/*2判断变量是不是null3*/4functionisNull(val){5returnval ===null;6}7/*测试变量*/8vara;9varb =null;10varc = "str";11//弹出运行结果12alert("变量a是null的判断结果是:"+isNull(a));//false13alert("变量b是null类型的判断结果是:"+isNull(b));//true14alert("变量c是null类型的判断结果是:"+isNull(c));//false

运行结果:

7.数组(Array)

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

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

1/*判断变量arr是不是数组2方法一3*/4functionisArray1(arr) {5returnObject.prototype.toString.apply(arr) === '[object Array]';6}78/*判断变量arr是不是数组9方法二10*/11functionisArray2(arr) {12if(arr ===nulltypeofarr === 'undefined'){13returnfalse;14}15returnarr.constructor ===Array;16}

测试代码:

1

运行结果:

(本文所有权归作者所有,如需转载请联系本平台。)

知道你会来

所以我一直在这里等

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180228G0J30600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券