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性能优化 如何更快速加载你的JavaScript页面
Mar 17 Javascript
js动态移动滚动条至底部示例代码
Apr 24 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
Dec 31 Javascript
详解Angularjs filter过滤器
Feb 06 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
Dec 08 Javascript
JQuery实现图片轮播效果
May 08 jQuery
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 Javascript
vue excel上传预览和table内容下载到excel文件中
Dec 10 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
Jun 05 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
中国收音机工业发展史
2021/03/02 无线电
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
JavaScript版代码高亮
2006/06/26 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
jQuery获取标签文本内容和html内容的方法
2015/03/27 Javascript
js实现大转盘抽奖游戏实例
2015/06/24 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
python的id()函数介绍
2013/02/10 Python
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
python matplotlib拟合直线的实现
2019/11/19 Python
Python 爬虫的原理
2020/07/30 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
《木笛》教学反思
2014/03/01 职场文书
校长寄语大全
2014/04/09 职场文书
欢度春节标语
2014/07/01 职场文书
谢师宴答谢词
2015/01/05 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server
python内置模块之上下文管理contextlib
2022/06/14 Python