Javascript中判断对象是否为空


Posted in Javascript onJune 10, 2015

发现了一个巧妙的实现: 需要检查一个对象(Object)是否为空,即不包含任何元素。Javascript 中的对象就是一个字典,其中包含了一系列的键值对(Key Value Pair)。检查一个对象是否为空,等价于检查对象中有没有键值对。写成代码,形如:

if (isEmptyObject(obj)) {

 // obj is empty
} else {
 // not empty
}

至于 isEmptyObject 的实现,jQuery 中有一个很有想法的方式,请看代码: 

function isEmptyObject(obj) {
 for (var key in obj) {
 return false;
 }
 return true;
}

 尽管 Javascript 没有原生提供 isEmpty() 方法,但它提供了迭代器,可以用来遍历所有的键值对。于是 jQuery 所做的事情,就是尝试遍历,如果有任何一个键值对,即说明对象非空,直接返回 false。从效率上来说,由于只读取了一个元素,顶多加上一些跳出循环的开销,实际性能不会比原生方法差太多。这是一个非常巧妙的实现。

注:有网友指出 ES5 中提供了 Object.getOwnPropertyNames 方法来获取所有的元素键。它的返回值是一个数组,当数组长度为零时,说明对象为空。

Javascript 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
Jquery实现带动画效果的经典二级导航菜单
Mar 22 Javascript
JQuery AJAX 中文乱码问题解决
Jun 05 Javascript
多个datatable共存造成多个表格的checkbox都被选中
Jul 11 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
Jan 06 Javascript
浅谈javascript回调函数
Dec 07 Javascript
Jquery实现简单的轮播效果(代码管用)
Mar 14 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
JavaScript制作简单的框选图表
May 15 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 Javascript
javascript事件委托的方式绑定详解
Jun 10 #Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 #Javascript
浅析JavaScript动画
Jun 10 #Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 #Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 #Javascript
jQuery取消ajax请求的方法
Jun 09 #Javascript
JavaScript动态添加style节点的方法
Jun 09 #Javascript
You might like
第十节--抽象方法和抽象类
2006/11/16 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
PHP中的表达式简述
2016/05/29 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
js导出txt示例代码
2014/01/14 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
template.js前端模板引擎使用详解
2017/10/10 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
2020/10/02 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
python爬取m3u8连接的视频
2018/02/28 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
python的setattr函数实例用法
2020/12/16 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
自我推荐书
2013/12/04 职场文书
关于赌博的检讨书
2014/01/08 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
大学生交通专业求职信
2014/09/01 职场文书
消防安全月活动总结
2015/05/08 职场文书
学校远程教育工作总结
2015/08/11 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android