一开始觉得好像判断一个对象为空好像简单用等号符就能搞定,结果发现不行。
var a = {};
if( a == {}){console.log("a is an empty object")};
if( a == "{}"){console.log("a is an empty object")};//之前项目里别人这样写的..我也试了下
//这两条都不能打印出这句话
偶然发现在jquery的源码中对空对象的判断做一个封装。可以在引用了jquery的页面直接打开控制台输入:
jQuery.isEmptyObject
//或者
$.isEmptyObject
//点进代码看看jquery是怎么实现的
isEmptyObject: function(b3) {
var e;
for (e in b3) {
return false
}
return true
}
//不同版本jquery,好像略有差异
//csdn用的版本
isEmptyObject: function(a) {
var b;
for (b in a)
return !1;
return !0
}
//!1代替false,!0代替true ,连for循环的括号都不要了真是为了节省长度用尽苦心啊
其实就是遍历了对象,有值返回false;