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 相关文章推荐
免费空间广告万能消除代码
Sep 04 Javascript
Tips 带三角可关闭的文字提示
Oct 06 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
Sep 05 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
Dec 27 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
浅谈Node.js 子进程与应用场景
Jan 24 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
JS实现的简单tab切换功能完整示例
Jun 20 Javascript
vue如何实现自定义底部菜单栏
Jul 01 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
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
Python functools模块学习总结
2015/05/09 Python
Python实现合并字典的方法
2015/07/07 Python
python tkinter基本属性详解
2019/09/16 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
企业治理工作自我评价
2013/09/26 职场文书
路政管理专业推荐信
2013/11/11 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
nginx静态资源的服务器配置方法
2022/07/07 Servers