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 1.0.2
Oct 11 Javascript
JavaScript的事件绑定(方便不支持js的时候)
Oct 01 Javascript
查询json的数据结构的8种方式简介
Mar 10 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
Feb 16 Javascript
原生js的数组除重复简单实例
May 24 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
Sep 05 Javascript
Angular.JS判断复选框checkbox是否选中并实时显示
Nov 30 Javascript
jQuery中绑定事件bind() on() live() one()的异同
Feb 23 Javascript
Node+Express+MongoDB实现登录注册功能实例
Apr 23 Javascript
Vue.js 踩坑记之双向绑定
May 03 Javascript
基于JavaScript获取base64图片大小
Oct 18 Javascript
Javascript Worker子线程代码实例
Feb 20 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
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
javascript读取xml
2006/11/04 Javascript
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
原生js实现改变随意改变div属性style的名称和值的结果
2013/09/26 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
js实现带进度条提示的多视频上传功能
2020/12/13 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
使用 Vue 实现一个虚拟列表的方法
2019/08/20 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
Python操作json数据的一个简单例子
2014/04/17 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
3的组成教学反思
2014/04/30 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
今日说法观后感
2015/06/08 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS