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 相关文章推荐
Prototype 学习 Prototype对象
Jul 12 Javascript
Javascript 中文字符串处理额外注意事项
Nov 15 Javascript
JS DOM 操作实现代码
Aug 01 Javascript
Javascript图像处理思路及实现代码
Dec 25 Javascript
uploadify在Firefox下丢失session问题的解决方法
Aug 07 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
Oct 14 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
js, jQuery实现全选、反选功能
Mar 08 Javascript
angular2系列之路由转场动画的示例代码
Nov 09 Javascript
jQuery实现checkbox全选功能完整实例
Jul 12 jQuery
vue与bootstrap实现简单用户信息添加删除功能
Feb 15 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
php对象工厂类完整示例
2018/08/09 PHP
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
javascript中new关键字详解
2015/12/14 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
微信小程序实用代码段(收藏版)
2019/12/17 Javascript
JavaScript仿京东轮播图效果
2021/02/25 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
python二进制文件的转译详解
2019/07/03 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
详解Python多线程下的list
2020/07/03 Python
python爬虫线程池案例详解(梨视频短视频爬取)
2021/02/20 Python
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
营业经理岗位职责
2013/11/10 职场文书
生产部管理制度
2014/01/31 职场文书
合作协议书范本
2014/04/17 职场文书
三年级小学生评语
2014/04/22 职场文书