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 相关文章推荐
JQuery分屏指示器图片轮换效果实例
May 21 Javascript
浅谈JavaScript 标准对象
Jun 02 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
Sep 03 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
node通过npm写一个cli命令行工具
Oct 12 Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
js实现特别简单的钟表效果
Sep 14 Javascript
基于openlayers实现角度测量功能
Sep 28 Javascript
使用react+redux实现计数器功能及遇到问题
Jun 02 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
PHP4引用文件语句的对比
2006/10/09 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
jQuery实现向下滑出的二级菜单效果实例
2015/08/22 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
python实现按行切分文本文件的方法
2016/04/18 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
Python实现求数列和的方法示例
2018/01/12 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
纽约海:Sea New York
2018/11/04 全球购物
岗位职责的定义
2013/11/10 职场文书
中秋节主持词
2014/04/02 职场文书
医院节能减排方案
2014/06/13 职场文书
大学生标准自荐书
2014/06/15 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
2016入党心得体会范文
2016/01/06 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Redis基本数据类型Set常用操作命令
2022/06/01 Redis