您的位置:首页 > Web前端 > JavaScript

如何判断js中的数据类型

2016-10-12 23:49 429 查看
//判断js中的类型的方法

var a;                  //输出值为undefined,数据类型为undefined

var b=2;                //输出值为2,数据类型为number

var c='你好';            //输出值为你好,数据类型为string

var d=[1,2,3];          //输出值为1,2,3,数据类型为object

var e=new Object();     //输出值为[object Object],数据类型为object

    e.aa=1;

    e.bb=2;

var f=true;             //输出值为true,数据类型为boolean

var g=null;             //输出值为null,数据类型为object

var h = new Date();     //输出值为Wed Oct 12 2016 22:42:13 GMT+0800 (中国标准时间),数据类型为object

var i = function(a,c){

            alert(a*c)  //数据类型为function

        };

//最常见的判断方法:typeof

console.log('输出值为'+a+',数据类型为'+typeof a);

console.log('输出值为'+b+',数据类型为'+typeof b);

console.log('输出值为'+c+',数据类型为'+typeof c);

console.log('输出值为'+d+',数据类型为'+typeof d);

console.log('输出值为'+e+',数据类型为'+typeof e);

console.log('输出值为'+f+',数据类型为'+typeof f);

console.log('输出值为'+g+',数据类型为'+typeof g);

console.log('输出值为'+h+',数据类型为'+typeof h);

console.log('输出值为'+i+',数据类型为'+typeof i);

//判断是否是哪个指定数据类型  备注:instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。

console.log(typeof a=='undefined');   //true

console.log(typeof a=='number');      //false

console.log(d instanceof Array);      //true

console.log(a instanceof Array);      //false

//根据对象的constructor判断: constructor

console.log(d.constructor === Array);        //true

console.log(h.constructor === Date)          //true

console.log(i.constructor === Function)      //true

//注意: constructor 在类继承时会出错

function A(){};

function B(){};

A.prototype=new B(); //A继承自B

var cuu=new A();

console.log(A.constructor===Function);      //true

console.log(cuu.constructor===B);           //true

cuu.constructor=A;                          //将自己的类赋值给对象的constructor属性

console.log(cuu.constructor===A);           //true

console.log(cuu.constructor===B);           //false

//prototype方法   通用但很繁琐的方法

console.log(Object.prototype.toString.call(c) === '[object String]');//true

console.log(Object.prototype.toString.call(b) === '[object Number]');//true

console.log(Object.prototype.toString.call(d) === '[object Array]');//true

console.log(Object.prototype.toString.call(h) === '[object Date]');//true

console.log(Object.prototype.toString.call(i) === '[object Function]');//true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息