你知道JavaScript是如何判断数据类型的吗?面试时你有没有被问到过?

43 篇文章 0 订阅
33 篇文章 0 订阅
  • 方法一

之前介绍数据类型的时候,我们介绍了typeof可以用来返回数据类型。比如:

typeof "Bill"      //返回 "string"
typeof 3.14        //返回 "number"
typeof NaN         //返回 "number"
typeof false       //返回 "boolean"
typeof [1,2,3,4]   //返回 "object"
typeof undefined   //返回 "undefined"
typeof null        //返回 "object"

// 返回 "object"
typeof {name:'Bill', age:62}

但是,typeof判断数组的时候,返回的是object,这样,我们就没办法判断数组这种数据类型了。
其实,数组也确实是一种特殊的对象。那怎样判断是不是数组呢?

  • 方法二

我们在介绍数组方法的时候,介绍了isArray方法。它是作用在Array类上的,用法如下:

var a = [];
Array.isArray(a); //返回true

isArray返回布尔值,如果是数组返回true,否则返回false。

isArray一些老的浏览器并不支持。

不支持isArray方法的怎么办呢?

  • 方法三

还有一个万能的方法:constructor属性。

任何一种数据类型都有一个constructor属性。它是用来返回一个指向创建了该对象原型的函数引用。

我们直接判断constructor属性是否是Array就可以了。写个例子:

var test = [];
alert(test.constructor == Array); //弹出true

constructor属性可以判断所有的数据类型,写个完整的判断吧:

 //修改test的值,Type会返回相应的数据类型
var test = "";
var Type;

switch(test.constructor){
    case Number:
    Type = '数值';
    break;
    
    case String:
    Type = '字符串';
    break;
    
    case Boolean:
    Type = '布尔';
    break;
    
    case Array:
    Type = '数组';
    break;
    
    case Date:
    Type = '日期';
    break;
    
    case Object:
    Type = '对象';  
}

alert(Type);

好了,没有多余的废话,上来就是干货文章,如果还需要更多的前端知识文章,欢迎微信搜索公众号“刘小妞的栖息地”,或者识别图片的二维码查看,感谢大家的支持。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值