js判断空对象的实例(超简单)


Posted in Javascript onJuly 26, 2016

最近项目遇到判断空对象的一个问题,查阅相关资料再进行总结一下。

判断空对象不比判断空字符串之类的,因为空对象也是一个对象,需要单独分配内存,而不是像字符串那样为空时就是大锅饭,大家都相等,如下代码:

js判断空对象的实例(超简单)

如上代码可以发现,无论是通过对象字面量方式创建的空对象还是通过Object构造函数创建的空对象,彼此之间都是不相等的。

1.将对象转换为字符串进行比较

这种方法很不推荐,但也确实是最容易想到的,主要使用JSON.stringify()这个方法对对象进行强转,贴出来仅供一看: 

var a={};
 var b=new Object();
 console.log("对象字面量的比较结果:"+(JSON.stringify(a)=="{}"))
 console.log("构造函数的比较结果:"+(JSON.stringify(b)=="{}"))

我们可以得到两种空对象转换为字符串后的比较都为真,可以解决这个问题,但是不推荐,下面说第二种方法。

2.for in循环

使用for in循环可以遍历所有属性以次判断对象是否为空对象:

var a={};
var b=new Object();
function isEmptyObject(obj){

   for(var key in obj){
     return false
   };
   return true
};
if(isEmptyObject(a)){
   alert("a是个空对象")
}
if(isEmptyObject(b)){
   alert("b是个空对象")
}

使用for in循环对对象进行循环时循环属性,相应的对数组进行循环时循环的是下标,如:

var b = ["hello","my","world"]
for(var index in b){
   console.log(b[index]);
}
//hello my world

以上就是小编为大家带来的(标题)全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
childNodes.length与children.length的区别
May 14 Javascript
解析URI与URL之间的区别与联系
Nov 22 Javascript
利用javascript数组长度循环数组内所有元素
Dec 27 Javascript
文本框文本自动补全效果示例分享
Jan 19 Javascript
js获取checkbox值的方法
Jan 28 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
JS 拼凑字符串的简单实例
Sep 02 Javascript
vue-cli如何快速构建vue项目
Apr 26 Javascript
JS实现按钮控制计时开始和停止功能
Jul 27 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
Dec 23 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
全面了解构造函数继承关键apply call
Jul 26 #Javascript
JS面试题---关于算法台阶的问题
Jul 26 #Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 #Javascript
jQuery仿京东商城楼梯式导航定位菜单
Jul 25 #Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 #Javascript
EasyUI加载完Html内容样式渲染完成后显示
Jul 25 #Javascript
前端微信支付js代码
Jul 25 #Javascript
You might like
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
jquery操作select option 的代码小结
2011/06/21 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
React 路由懒加载的几种实现方案
2018/10/23 Javascript
vue实现Input输入框模糊查询方法
2021/01/29 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
通过C++学习Python
2015/01/20 Python
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
Python中的getopt函数使用详解
2015/07/28 Python
关于反爬虫的一些简单总结
2017/12/13 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
Python中six模块基础用法
2019/12/08 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
关于赌博的检讨书
2014/01/08 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript