对于类型的判断,Javascript使用typeof来进行!
console.log(typeof null); //object
console.log(typeof []); //object
console.log(typeof {}); //object
console.log(typeof new Date()); //object
console.log(typeof new Object); //object
console.log(typeof function(){}); //function
console.log(typeof alert); //function
console.log(typeof 1); //number
console.log(typeof “abc”);//string
console.log(typeof true);//boolean
可以看到,typeof并不能够准确的判断出每一种数据类型,比如null和数组等都是object类型。因此,Javascript判断数据类型不推荐使用typeof。
那么要如何具体判断呢?
console.log({}.toString.call(null)); //[object Null]
console.log({}.toString.call([])); //[object Array]
console.log({}.toString.call({})); //[object Object]
console.log({}.toString.call(new Date())); //[object Date]
console.log({}.toString.call(function(){})); //[object Function]
console.log({}.toString.call(new Object)); //[object Object]
console.log({}.toString.call(alert)); //[object Function]
console.log({}.toString.call(1)); //[object Number]
console.log({}.toString.call(‘abc’)); //[object String]
console.log({}.toString.call(true)); //[object Boolean]
那如果你用的是jQuery,就不用这么麻烦喽,可以直接用工具方法$.type(),进行判断
console.log($.type(null)); //null
console.log($.type([])); //array
console.log($.type({})); //object
console.log($.type(1)); //number
……不全写完了,结果和{}.toString.call(obj);是一样的
实际上{}.toString.call(obj);就是jQuery中$.type()这个工具方法的实现最重要的一段代码(⊙o⊙)哦,神奇吧!赶快去jQuery源码中找找看吧
转载请注明来源网站:blog.ytso.com谢谢!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15020.html