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 Date对象使用总结
May 14 Javascript
Visual Studio中的jQuery智能提示设置方法
Mar 27 Javascript
js如何获取object类型里的键值
Feb 18 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
Apr 12 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
Jquery组件easyUi实现选项卡切换示例
Aug 23 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
Sep 16 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
详解小程序退出页面时清除定时器
Apr 28 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 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接收POST数据,解析json数据
2013/06/28 PHP
php隐藏实际地址的文件下载方法
2015/04/18 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
JavaScript WeakMap使用详解
2021/02/05 Javascript
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
详解Python中break语句的用法
2015/05/14 Python
python图像处理之镜像实现方法
2015/05/30 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
使用tensorflow实现线性回归
2018/09/08 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
如何判断计算机可能已经中马
2013/03/22 面试题
求职个人评价范文
2014/04/09 职场文书
仓库管理计划书
2014/05/04 职场文书
租房协议书
2014/09/12 职场文书
护士个人总结范文
2015/02/13 职场文书
同意转租证明
2015/06/24 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
护士心得体会范文
2016/01/25 职场文书