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 相关文章推荐
jQuery 全选/反选以及单击行改变背景色实例
Jul 02 Javascript
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 Javascript
JavaScript中的闭包介绍
Mar 15 Javascript
js实现网页多级级联菜单代码
Aug 20 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
利用node.js搭建简单web服务器的方法教程
Feb 20 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
webpack2.0配置postcss-loader的方法
Aug 17 Javascript
详解JSON Web Token 入门教程
Jul 30 Javascript
JavaScript实现英语单词题库
Dec 24 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
PHP面向对象精要总结
2014/11/07 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
JQuery 获取和设置Select选项的代码
2010/02/07 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
jQuery插件jPaginate实现无刷新分页
2015/05/04 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python爬取淘宝商品详情页数据
2018/02/23 Python
Python异常处理操作实例详解
2018/05/10 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python如何更新包
2020/06/11 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
一夜的工作教学反思
2014/02/08 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
图书馆义工感想
2015/08/07 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL