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 相关文章推荐
超级退弹代码
Jul 07 Javascript
JQuery 国际象棋棋盘 实现代码
Jun 26 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
Aug 21 Javascript
jQuery中nextAll()方法用法实例
Jan 07 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
angularJs在多个控制器中共享服务数据的方法
Sep 30 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
解决vue项目axios每次请求session不一致的问题
Oct 24 Javascript
nuxt引入组件和公共样式的操作
Nov 05 Javascript
详解JavaScript执行模型
Nov 16 Javascript
Vue使用鼠标在Canvas上绘制矩形
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
上海无线电三厂简史修改版
2021/03/01 无线电
PHP 和 COM
2006/10/09 PHP
PHP高级OOP技术演示
2009/08/27 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
js 对象是否存在判断
2009/07/15 Javascript
Javascript中的变量使用说明
2010/05/18 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
字符串的replace方法应用浅析
2011/12/06 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
Python新手们容易犯的几个错误总结
2017/04/01 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
意大利男装网店:Vrients
2019/05/02 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
店长助理岗位职责
2013/12/13 职场文书
十佳护士获奖感言
2014/02/18 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
党小组推荐意见
2015/06/02 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python