关于JavaScript和jQuery的类型判断详解
对于类型的判断,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。
那么要如何具体判断呢??看一下语法<( ̄3 ̄)> !
{}.toString.call(obj);
栗子:
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源码中找找看吧~~
相关推荐
nxcjh 2020-02-02
xiaofanguan 2020-06-25
xiyang 2020-06-16
yfisaboy 2020-05-19
齐天大圣数据候 2020-02-17
ThinkingLink 2020-02-09
Mr欢先生 2013-05-14
xiaoge00 2020-01-05
wanwanwandj 2019-12-25
Dansha的花果山 2019-11-21
84334052 2019-11-19
人心 2019-11-16
bangrenzhuce 2019-11-03
ThinkingLink 2019-10-30
sunnyJam 2019-10-27
一亩半分地 2011-12-04
Adelais 2019-09-11
QiaoranC 2019-09-06