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 相关文章推荐
javascript 对象定义方法 简单易学
Mar 22 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
Dec 12 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
Oct 19 Javascript
node.js中的Socket.IO使用实例
Nov 04 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
基于OL2实现百度地图ABCD marker的效果
Oct 01 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
Dec 08 Javascript
vue如何从接口请求数据
Jun 22 Javascript
BootStrap模态框闪退问题实例代码详解
Dec 10 Javascript
vue使用canvas实现移动端手写签名
Sep 22 Javascript
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 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具体实现代码
2010/10/12 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
javascript第一课
2007/02/27 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
JavaScript图片处理与合成总结
2018/03/04 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
C#里面如何倒序排列一个数组的元素?
2013/06/21 面试题
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
村庄环境整治方案
2014/05/15 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
高中生毕业评语
2014/12/30 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript