判断某个object中是否存在某个key,此处不作value真实值判断,key存在即可。
1 | var obj = { |
直接取key(返回vlaue/undefined)
1
2
3
4
5
6
7if (obj && obj.a) {
// 存在的处理
}
if (obj && obj.methodA) {
// 存在的处理
}[]取值(返回value/undefined)
1
2
3
4
5
6
7if (obj && obj["a"]) {
// 存在的处理
}
if (obj && obj["methodA"]) {
// 存在的处理
}in 关键字(返回true/false)
1
2
3
4
5
6
7if (obj && "a" in obj) {
// 存在的处理
}
if (obj && "methodA" in obj) {
// 存在的处理
}hasOwnProperty判断属性是否存在(返回true/false)
1
2
3
4
5
6
7if (obj && obj.hasOwnProperty("a")) {
// 存在的处理
}
if (obj && obj.hasOwnProperty("methodA")) {
// 存在的处理
}
注:
方法1和方法2通过取值的方式不够稳妥,假如改key的真实取值就是undefined,那么便会出问题,方法3和方法4比较靠谱。