如何判断js中的数据类型

来源:互联网 发布:唐小僧 数据驱动力 编辑:程序博客网 时间:2024/04/29 13:06
//判断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

1 0
原创粉丝点击