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 相关文章推荐
ExtJS 2.0实用简明教程 之ExtJS版的Hello
Apr 29 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
jquery插件unobtrusive实现片段式加载
Jun 15 Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 Javascript
深入理解Javascript中的观察者模式
Feb 20 Javascript
实现一个完整的Node.js RESTful API的示例
Sep 29 Javascript
Angular 封装并发布组件的方法示例
Apr 19 Javascript
Smartour 让网页导览变得更简单(推荐)
Jul 19 Javascript
Vue如何基于es6导入外部js文件
May 15 Javascript
微信小程序转化为uni-app项目的方法示例
May 22 Javascript
jQuery实现穿梭框效果
Jan 19 jQuery
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
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
javascript parseInt 函数分析(转)
2009/03/21 Javascript
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
微信小程序商品到详情的实现
2017/06/27 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
Python语言描述随机梯度下降法
2018/01/04 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
《美丽的公鸡》教学反思
2014/02/25 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL