我们经常会遇到这样的问题:判断一个对象是什么样的。是空对象({})?还是…?
第一种情况
这个肯定会:
|
|
但不能只会,很多情况下需要判断的不是字符串,对不?那如果变成对象只会判断:
|
|
那在好多情况下就又会进坑了…
为什么呢?去这儿看看:关于x==y的比较行为
第二种情况
$.isPlainObject()
jQ中的这个方法在对象是通过{}或new Object()创建的的时候会返回true。Zepto中
也有这个方法,大体相同。
源码是这样的:
|
|
可以试试了:
|
|
第三种情况
判断一个对象是否为空对象:
|
|
不过有时候它也挺坑爹的:
|
|
其实,我们可以巧妙的应用toString()方法来判断数值类型,不管是基本的值类型还是对象:
|
|
稍微整理一下就可以像我们想要得到的那样来判断数值类型了,特殊的null和undefined也不会落下:
|
|
具体情况还是要具体分析,头脑清晰想清楚再判断好,再去做接下来的事情。少走些弯路。