js 检查对象是否没有字段
前言
我以前遇到的一个问题。
var object={};
if(object=={})
{
}
在这里我遇到了问题,一直是lese状态。
后来想想其实也是自己犯了一个很严重的问题,这两个不是同一个对象。
但是后来我想到了另一个问题,如何判断{}是否为空?
正文
后来我想到了这种方法:
var data = {};
var b = (JSON.stringify(data) == "{}");
但是我一想这种效率是否有点低呢?
经过搜索这里还有其他的方法:
var obj = {};
var b = function() {
for(var key in obj) {
return false;
}
return true;
}
es6中可以这样写:
var data = {};
var arr = Object.keys(data);
alert(arr.length == 0);//true
es5 中这样写:
var data = {};
var arr = Object.getOwnPropertyNames(data);
alert(arr.length == 0);//true
但是es5中有个问题,那就是不兼容ie8