美文网首页
从一个空对象说起

从一个空对象说起

作者: 叶子是会飞翔的翅膀 | 来源:发表于2017-10-02 17:03 被阅读0次

万事开头难,博客第一篇就写点简单的吧。

ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number 和 String。还有 1种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的。

Boolean、Number 和 String就不用说了,用“===”即可进行相等判断,剩下的四种在控制台log的结果如下:

undefined === undefined //  true
null===null  //  true
{}==={}  //  false
[] === []  //  false

也就是说,只有引用类型的{}和[]不能用“===”来进行相等判断,因为即使都是空的,每个{}或[]在内存中的地址也不一样。

变量对象与堆内存

那如何判定一个对象为空呢?

思路有以下两种:

  1. 空对象自身没有属性。
  2. 空对象可转换成字符串==="{}"。

针对第一种,有以下几种方法:

  1. for in 循环判断
var obj = {};
var b = function() {
for(var key in obj) {
return false;
}
return true;
}
alert(b());  //true
  1. 使用ES6的Object.keys()方法
    这是ES6的新方法, 返回值也是对象中属性名组成的数组。
var data = {};
var arr = Object.keys(data);
alert(arr.length == 0);//true
  1. Object.getOwnPropertyNames()方法
    此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空
    注意:此方法不兼容ie8,其余浏览器没有测试
var data = {};
var arr = Object.getOwnPropertyNames(data);
alert(arr.length == 0);//true

针对第二种,可将json对象转化为json字符串,再判断该字符串是否为"{}"。

var data = {};
var b = (JSON.stringify(data) == "{}");
alert(b);  //true

此外,还可以使用jquery的.isEmptyObjec或者lodash的isEqual等相关方法,只是需要引入相关依赖。

参考资料:
http://blog.csdn.net/pingfan592/article/details/55189622
http://blog.csdn.net/qq_38627581/article/details/77353015

相关文章

  • 从一个空对象说起

    万事开头难,博客第一篇就写点简单的吧。 ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Un...

  • 从一个梦说起

    在想今天要写什么话题的时候,突然想到今天早上(30号早上)做的梦,仍旧历历在目,美丽地超越真实。不妨写一写梦境与一...

  • 从一个广告说起

    图片是一家餐厅门前放的一副广告,主打“霸王餐”,吃多少,然后充值3倍的价格,这顿就能免单,听起来非常不错,吃得越多...

  • 从一个梦说起

    昨天晚上做了一夜的梦,梦见和一个认识的男孩谈恋爱。不是梦幻般甜美的爱情,而是特别真实的那种。我能感受到他的不迁就和...

  • 从一个姑娘说起

    落日缓缓的坠下去 昏黄的一线光芒 顺着玻璃打过来 落在你乌黑秀长的头发上 归鸟掠窗而过 扑棱棱的影子一瞬间落在你身...

  • 从一个姑娘说起

    落日缓缓的坠下去 昏黄的一线光芒 顺着玻璃打过来 落在你乌黑秀长的头发上 归鸟掠窗而过 扑棱棱的影子一瞬间落在你身...

  • 从一个椰子说起

    我记得小的时候,椰子饮料只有椰树这一个牌子叫得出来。但是从前年同学的一次喜宴开始到今年春节,我发现越来越多的椰子饮...

  • 从一个杯子说起

    2016-03-12阿朝 这个星期,丢了一个浅蓝色的水杯, 我明明把它时常带在身边的啊, 我去健身离不开啊,它就这...

  • 从一个梦说起

    昨天晚上做了一个好梦!因为做了这个梦之后,我感觉到,我的释然,我的轻松,这个梦最好的一面,就是警醒我:善待我的夫妻...

  • 从一个故事说起

    讲一个故事。 一个妈妈,在儿子初三那年开始选择做全职妈妈,为了孩子能考上市重,为了孩子将来能考上好的大学,主动辞职...

网友评论

      本文标题:从一个空对象说起

      本文链接:https://www.haomeiwen.com/subject/nfjtyxtx.html