zepto源码--几个判断函数--学习笔记

几个需要经常用到的类型判断:

自定义一个类似于typeof的函数,提供更多的类型判断。

class2type[toString.call(obj)] 是对class2type的取值

在后面通过循环对class2type赋予相应的键值对,

最终在class2type保存的是

所以当调用type传入的参数为array对象时,调用toString.call(array)返回[object Array],所以对应class2type['[object Array]']即为array。

如果传入的参数为null,则类型返回'null',基本上可以返回各种常用对象类型,如'function', 'array','regexp'……而不是统一返回object。

判断是否为函数类型:

判断是不是window对象:

判断是不是document对象:

判断是否为object对象:

判断是否为{}对象:

判断是否为类数组:arguments就属于类数组,或者$('div')这种,可以用下标读取,看起来像数组,但又不是真正的数组的。

改造成if else结构的话:

应该就比较容易看懂了。

 注:多看几遍zepto源码之后,发现其中用到了大量的三目运算符(? :)和按位与、按位或,需要特别了解这三者。

原文地址:https://www.cnblogs.com/zhuhuoxingguang/p/6001314.html