2017.12.7更新:
12个非常实用的JavaScript小技巧
http://developer.51cto.com/art/201605/510881.htm
.js判断object里面是否包含某一字段
hasOwnProperty 方法
var obj = {
name:"王中",
age:"26岁",
grade:"毕业",
speciality:"计算机",
girlfriend:"郭英卓",
gongfu:"阴阳宫"
};
if (obj.hasOwnProperty("age")){ //判断age是否存在于obj里面
alert("有age项");
}
2.js判断一个对象是否为空对象
1. 代码1:
var a = {};
if(!a){ console.log(1);}
else if (a ==null) { console.log(2);}
else{ console.log(3);}
结果为:3
2. 代码2:
var b = {};
if(b == {}){ console.log(4);}
if(b =='{}') { console.log(5);}
if(typeof(b) =='object') { console.log(6);}
结果为:6
3. 代码3:
var c = {};
if(JSON.stringify(c) =="{}"){
console.log(7);
}
结果为:7
所以可以使用代码3的方法判断对象是否为空对象{};
如果对象不为空,并且知道对象不为空时,某个属性(比如{id:111})一定存在,则可以里这样判断:
4. 代码4:
var d = {};
var e = {id:111};
if(d.id){ console.log(8);}
if(e.id){ console.log(9);}
结果为:9
小结:显然代码3的判断方式比较“强势”,但效率明显不如代码4的判断方法
**5.代码5: **
发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:
if (isEmptyObject(obj)) {
// obj is empty
} else {
// not empty
}
至于 isEmptyObject 的实现,jQuery 中有一个很有想法的方式,请看代码:
function isEmptyObject(obj) {
for (var key in obj) {
return false;
}
return true;
}
尽管 Javascript 没有原生提供 isEmpty() 方法,但它提供了迭代器,可以用来遍历所有的键值对。于是 jQuery 所做的事情,就是尝试遍历,如果有任何一个键值对,即说明对象非空,直接返回 false。从效率上来说,由于只读取了一个元素,顶多加上一些跳出循环的开销,实际性能不会比原生方法差太多。
简单方法判断JavaScript对象为null或者属性为空 :http://www.jb51.net/article/55700.htm
仅与大家分享