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资料toString 方法
Mar 13 Javascript
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
Dec 19 Javascript
在子窗口中关闭父窗口的一句代码
Oct 21 Javascript
jQuery与getJson结合的用法实例
Aug 07 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
Nov 20 Javascript
AngularJS 文件上传控件 ng-file-upload详解
Jan 13 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
react 父组件与子组件之间的值传递的方法
Sep 14 Javascript
vue.js内置组件之keep-alive组件使用
Jul 10 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
Aug 20 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 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学习 字符串课件
2008/06/15 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
jquery对表单操作2
2011/04/06 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
Vue实现购物车场景下的应用
2017/11/27 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
vue实现日历备忘录功能
2020/09/24 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Python实现的计数排序算法示例
2017/11/29 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
python科学计算之narray对象用法
2019/11/25 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
利用python汇总统计多张Excel
2020/09/22 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
年终晚会主持词
2014/03/25 职场文书
运动会报道稿300字
2014/10/02 职场文书
工作建议书范文
2019/07/08 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技
Go 中的空白标识符下划线
2022/03/25 Golang
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android