关于JavaScript和jQuery的类型判断详解
对于类型的判断,JavaScript用typeof来进行。
栗子:
console.log(typeofnull);//object console.log(typeof[]);//object console.log(typeof{});//object console.log(typeofnewDate());//object console.log(typeofnewObject);//object console.log(typeoffunction(){});//function console.log(typeofalert);//function console.log(typeof1);//number console.log(typeof"abc");//string console.log(typeoftrue);//boolean
可以看到,typeof并不能够准确的判断出每一种数据类型,比如null和数组等都是object类型。因此,JavaScript判断数据类型不推荐使用typeof。
那么要如何具体判断呢??看一下语法<( ̄3 ̄)>!
{}.toString.call(obj);
栗子:
console.log({}.toString.call(null));//[objectNull] console.log({}.toString.call([]));//[objectArray] console.log({}.toString.call({}));//[objectObject] console.log({}.toString.call(newDate()));//[objectDate] console.log({}.toString.call(function(){}));//[objectFunction] console.log({}.toString.call(newObject));//[objectObject] console.log({}.toString.call(alert));//[objectFunction] console.log({}.toString.call(1));//[objectNumber] console.log({}.toString.call('abc'));//[objectString] console.log({}.toString.call(true));//[objectBoolean]
哈哈,是不是一目了然呀!!
那如果你用的是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源码中找找看吧~~
以上就是小编为大家带来的关于JavaScript和jQuery的类型判断详解全部内容了,希望大家多多支持毛票票~