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 相关文章推荐
利用javascript实现一些常用软件的下载导航
Aug 03 Javascript
js 异步操作回调函数如何控制执行顺序
Dec 24 Javascript
Javascript的闭包详解
Dec 26 Javascript
再谈JavaScript异步编程
Jan 27 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
vue 详情跳转至列表页实现列表页缓存
Mar 27 Javascript
一文快速了解JQuery中的AJAX
May 31 jQuery
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
Nov 17 Javascript
基于vuex实现购物车功能
Jan 10 Vue.js
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
PHP自动生成月历代码
2006/10/09 PHP
利用PHP+JS实现搜索自动提示(实例)
2013/06/09 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
WordPress中is_singular()函数简介
2015/02/05 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
node.js 发布订阅模式的实例
2017/09/10 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Python实现多线程下载文件的代码实例
2014/06/01 Python
21行Python代码实现拼写检查器
2016/01/25 Python
详解python的ORM中Pony用法
2018/02/09 Python
在Python中通过getattr获取对象引用的方法
2019/01/21 Python
详解Python中的测试工具
2019/06/09 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
啤酒销售实习自我鉴定
2013/09/24 职场文书
艺术系应届生的自我评价
2013/10/19 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
英文自我鉴定
2013/12/10 职场文书
财务方面个人工作的自我评价
2013/12/28 职场文书
团委竞选演讲稿
2014/04/24 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
python tkinter模块的简单使用
2021/04/07 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python