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 相关文章推荐
IE6,IE7下js动态加载图片不显示错误
Jul 17 Javascript
javascript 判断整数方法分享
Dec 16 Javascript
JavaScript实现16进制颜色值转RGB的方法
Feb 09 Javascript
js实现n秒倒计时后才可以点击的效果
Dec 20 Javascript
常用的js验证和数据处理总结
Aug 02 Javascript
js实现多图左右切换功能
Aug 04 Javascript
ES6模块化的import和export用法方法总结
Aug 08 Javascript
js匿名函数使用&传参(实例)
Sep 08 Javascript
微信小程序 scroll-view实现锚点滑动的示例
Dec 06 Javascript
详解在HTTPS 项目中使用百度地图 API
Apr 26 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
Oct 15 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调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
删除javascript中注释语句的正则表达式
2014/06/11 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
用Python进行TCP网络编程的教程
2015/04/29 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
python简单实现AES加密和解密
2019/03/28 Python
Django组件cookie与session的具体使用
2019/06/05 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
浙大网新C/C++面试解惑
2015/05/27 面试题
2014年教师培训的自我评价
2014/01/03 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
药房管理制度范本
2015/08/06 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python