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 相关文章推荐
用jquery实现输入框获取焦点消失文字
Apr 27 Javascript
jquery实现弹出层完美居中效果
Mar 03 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
Angularjs中如何使用filterFilter函数过滤
Feb 06 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
Jun 09 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
Apr 04 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
JavaScript实现简单进度条效果
Mar 25 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 Javascript
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
全面了解构造函数继承关键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
php学习之简单计算器实现代码
2011/06/09 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
一个用js实现控制台控件的代码
2007/09/04 Javascript
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
js 实现 input type="file" 文件上传示例代码
2013/08/07 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
几个你不知道的技巧助你写出更优雅的vue.js代码
2018/06/11 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
2019/05/17 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
详解JS函数防抖
2020/06/05 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
python机器学习之决策树分类详解
2017/12/20 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
python3 线性回归验证方法
2019/07/09 Python
python实现从本地摄像头和网络摄像头截取图片功能
2019/07/11 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
python中def是做什么的
2020/06/10 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
C#怎么让一个窗口居中显示?
2015/10/20 面试题
控制工程专业个人求职信
2013/09/25 职场文书
财务经理岗位职责
2013/11/09 职场文书
2014年设备管理工作总结
2014/11/26 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
求职信范文怎么写
2015/03/19 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android