javaScript学习

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
仅与大家分享

    原文作者:凌宇之蓝
    原文地址: https://www.jianshu.com/p/30126fba75f1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞