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 flash复制库类 Zero Clipboard
Jan 17 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
Jan 21 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
jQuery的text()方法用法分析
Dec 20 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
js实现非常简单的焦点图切换特效实例
May 07 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
Jun 21 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
微信小程序实现自定义modal弹窗封装的方法
Jun 15 Javascript
vue excel上传预览和table内容下载到excel文件中
Dec 10 Javascript
如何实现vue的tree组件
Dec 03 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和javascript之间变量的传递实现代码
2012/12/19 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
web.py中调用文件夹内模板的方法
2014/08/26 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
简单了解python模块概念
2018/01/11 Python
python实现数据写入excel表格
2018/03/25 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
python实现读取excel文件中所有sheet操作示例
2019/08/09 Python
Python3实现二叉树的最大深度
2019/09/30 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
倡议书格式模板
2014/05/13 职场文书
应用心理学专业求职信
2014/08/04 职场文书
副总经理岗位职责
2015/02/02 职场文书
社区重阳节活动总结
2015/03/24 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL