JavaScript如何判断数据类型

110 阅读2分钟
原文链接: mp.weixin.qq.com

方法一

之前介绍数据类型的时候,我们介绍了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);


长按下方二维码,关注刘小妞的栖息地 👇👇👇


往期文章:

JS数据类型(语音版)

JavaScript语法(语音版)

JavaScript初始印象(语音版)