欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jQuery中的类型判断原理及实现

程序员文章站 2022-07-12 13:37:42
...

 

 
//测试Chrome版本  40.0.2214.115 m
//测试版本        41.0.2272.118 (64-bit)   mac
 
 
//如有错误欢迎指出
//javaScrpt基本数据类型 numeber,boolean,string这三种
//判断类型的有三种办法
//第一种 typeof
//有几种情况是判断不出来的,null,new Date()  
//典型区别不开的,当然还有其它的一些也判断不出
var class2type={};
console.info(typeof(null));//object
console.info(typeof(undefined));
console.info(typeof(new Date()));//object   我要的是date类型
 
//第二种 constructor
//这种方法几乎都可以判断了,但是存在bug,这就要不得了
console.info({}.constructor===Object);
console.info({}.constructor==Object);
console.info(new Date().constructor===Date);
console.info(new Date().constructor==Date);
//但是null undefinde 无构造
//1也是没有的.可以转化为(1).constructor
 
//第三种 toString方法最好最实用
var toString={}.toString;//防止被篡改
 
//写一个判断数据类型的方法
var type=function(obj){
    //如果为null
    if(obj==null){
    return obj+"";
}
return typeof obj=="object" || typeof obj=="function" ?toString.call(obj):typeof obj;
};
 
 
console.info(type(new Date()));//[object Date]
console.info(type(null));
console.info(type({}));
 
console.info(type(1));
 
//到此结束