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

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

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

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

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

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

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

最终在class2type保存的是

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

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

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

判断是否为函数类型:

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

判断是不是window对象:

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

判断是不是document对象:

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

判断是否为object对象:

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

判断是否为{}对象:

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

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

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

改造成if else结构的话:

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

应该就比较容易看懂了。

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

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

上一篇:Scrapy爬虫学习笔记 - windows \ linux下搭建开发环境1


下一篇:Jfinal数据库操作语句中占位符的使用