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 IFrame 强制刷新代码
Jul 23 Javascript
将jQuery应用于login页面的问题及解决
Oct 17 Javascript
Ext JS添加子组件的误区探讨
Jun 28 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
Jquery使用css方法改变样式实例
May 18 Javascript
初识Javascript小结
Jul 16 Javascript
浅谈JS中逗号运算符的用法
Jun 12 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
Jul 27 Javascript
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 Vue.js
详解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程序设计中的MVC编程思想
2014/07/28 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
简单JS代码压缩器
2006/10/12 Javascript
javascript Excel操作知识点
2009/04/24 Javascript
用js来刷新当前页面保留参数的具体实现
2013/12/23 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
angular2+node.js express打包部署的实战
2017/07/27 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
python生成日历实例解析
2014/08/21 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Python matplotlib实时画图案例
2020/04/23 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
澳大利亚领先的在线美容商店:Facial Co
2017/10/22 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
羊脂球读书笔记
2015/06/30 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书