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 相关文章推荐
选择TreeView控件的树状数据节点的JS方法(jquery)
Feb 06 Javascript
jQuery学习5 jQuery事件模型
Feb 07 Javascript
jQuery 源码分析笔记(5) jQuery.support
Jun 19 Javascript
利用jQuary实现文字浮动提示效果示例代码
Dec 26 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
jQuery中dom元素上绑定的事件详解
Apr 24 Javascript
深入理解JS正则表达式---分组
Jul 18 Javascript
Angular企业级开发——MVC之控制器详解
Feb 20 Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
vue页面加载时的进度条功能(实例代码)
Jan 13 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
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
Java中final关键字详解
2015/08/10 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
javascript学习之json入门
2016/12/22 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
Java语言程序设计测试题改错题部分
2014/07/22 面试题
保送生自荐信范文
2013/10/06 职场文书
测绘工程个人的自我评价
2013/11/10 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
python实现简单的井字棋
2021/05/26 Python
JavaScript异步操作中串行和并行
2021/11/20 Javascript
python实现会员管理系统
2022/03/18 Python