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 相关文章推荐
js操作ajax返回的json的注意问题!
Feb 23 Javascript
浅析Node.js查找字符串功能
Sep 03 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
May 15 Javascript
Jquery跨域获得Json的简单实例
May 18 Javascript
BootStrapValidator校验方式
Dec 19 Javascript
微信小程序实现点击返回顶层的方法
Jul 12 Javascript
微信小程序模板和模块化用法实例分析
Nov 28 Javascript
vue2.0之多页面的开发的示例
Jan 30 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 Javascript
vue实现路由监听和参数监听
Oct 29 Javascript
antd form表单数据回显操作
Nov 02 Javascript
vue+iview实现分页及查询功能
Nov 17 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中的Class的几点个人看法
2006/10/09 PHP
坏狼的PHP学习教程之第2天
2008/06/15 PHP
[原创]提供复制本站内容时出现,该文章转自脚本之家等字样的js代码
2007/03/27 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
JS hashMap实例详解
2016/05/26 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
js实现敏感词过滤算法及实现逻辑
2018/07/24 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
[01:12:40]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第三场 1月25日
2021/03/11 DOTA
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Atom的python插件和常用插件说明
2018/07/08 Python
便捷提取python导入包的属性方法
2018/10/15 Python
解决Django no such table: django_session的问题
2020/04/07 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
积极分子思想汇报
2014/01/04 职场文书
保安2014年终工作总结
2014/12/06 职场文书
公司股份合作协议书
2014/12/07 职场文书
学校禁毒宣传活动总结
2015/05/08 职场文书
离婚起诉书范本
2015/05/18 职场文书
新闻稿格式范文
2015/07/18 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书