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 相关文章推荐
在js中使用"with"语句中跨frame的变量引用问题
Mar 08 Javascript
javascript预览上传图片发现的问题的解决方法
Nov 25 Javascript
Jqgrid表格随窗口大小改变而改变的简单实例
Dec 28 Javascript
Javascript实现计算个人所得税
May 10 Javascript
js运动应用实例解析
Dec 28 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
Aug 25 Javascript
基于vue2.x的电商图片放大镜插件的使用
Jan 22 Javascript
微信上传视频文件提示(推荐)
Nov 22 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
Feb 12 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 Javascript
js 数组当前行添加数据方法详解
Jul 28 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
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
javascript利用canvas实现鼠标拖拽功能
2020/07/23 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
2016/02/08 面试题
应届实习生的自我评价范文
2014/01/05 职场文书
运动会表扬稿大全
2014/01/16 职场文书
企业理念标语
2014/06/09 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
小平您好观后感
2015/06/09 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
Golang 对es的操作实例
2022/04/20 Golang