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)); //到此结束