JS/Jquery判断对象为空的方法


Posted in Javascript onJune 11, 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。从效率上来说,由于只读取了一个元素,顶多加上一些跳出循环的开销,实际性能不会比原生方法差太多。

function isNullObj(obj){
  for(var i in obj){
    if(obj.hasOwnProperty(i)){
      return false;
    }
  }
  return true;
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
javascript实现上传图片前的预览(TX的面试题)
Aug 20 Javascript
为JavaScript添加重载函数的辅助方法
Jul 04 Javascript
jQuery产品间断向下滚动效果核心代码
May 08 Javascript
javascript 自定义回调函数示例代码
Sep 26 Javascript
详解参数传递四种形式
Jul 21 Javascript
莱鸟介绍window.print()方法
Jan 06 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
May 30 Javascript
值得分享的JavaScript实现图片轮播组件
Nov 21 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 Javascript
Web前端框架Angular4.0.0 正式版发布
Mar 28 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 #Javascript
无刷新上传文件并返回自定义值
Jun 11 #Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 #Javascript
JS制作手机端自适应缩放显示
Jun 11 #Javascript
实现placeholder效果的方案汇总
Jun 11 #Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 #Javascript
JavaScript中的setMilliseconds()方法使用详解
Jun 11 #Javascript
You might like
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
动态添加js事件实现代码
2009/03/12 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
2012/05/27 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python多线程用法实例详解
2015/01/15 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python在线运行代码助手
2016/07/15 Python
Python程序运行原理图文解析
2018/02/10 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python使用正则筛选信用卡
2019/01/27 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
广州地球村科技数据库题目
2016/04/25 面试题
绩效工资分配方案
2014/01/18 职场文书
学校安全检查制度
2014/01/27 职场文书
市场营销调查计划书
2014/05/02 职场文书
公证委托书标准格式
2014/09/11 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
个人整改措施书面材料
2014/10/24 职场文书
公证书格式
2015/01/23 职场文书
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers
Elasticsearch 配置详解
2022/04/19 Java/Android