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 相关文章推荐
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
Dec 02 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
AngularJS ng-bind-html 指令详解及实例代码
Jul 30 Javascript
第一次接触神奇的Bootstrap
Oct 14 Javascript
jstree单选功能的实现方法
Jun 07 Javascript
详解vue mint-ui源码解析之loadmore组件
Oct 11 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
Oct 24 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 进程锁定问题分析研究
2009/11/24 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
小程序实现多选框功能
2018/10/30 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
微信小程序入门之指南针
2020/10/22 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python dataframe astype 字段类型转换方法
2018/04/11 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
python随机模块random使用方法详解
2020/02/14 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
李宁官方网店:中国运动品牌
2017/11/02 全球购物
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
本科毕业生求职自荐信
2014/02/03 职场文书
远程网络教育毕业生自我鉴定
2014/04/14 职场文书
承诺书样本
2014/08/30 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
Docker安装MySql8并远程访问的实现
2022/07/07 Servers