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 简单导航实现代码
Sep 11 Javascript
js闭包的用途详解
Nov 09 Javascript
node.js中的http.response.writeHead方法使用说明
Dec 14 Javascript
jQuery实现“扫码阅读”功能
Jan 21 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
JS之相等操作符详解
Sep 13 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
vue中v-model的应用及使用详解
Jun 27 Javascript
Angular使用Restful的增删改
Dec 28 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
jquery实现简易验证插件封装
Sep 13 jQuery
详解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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
node.js入门教程
2014/06/01 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
JS创建Tag标签的方法详解
2017/06/09 Javascript
JS复杂判断的更优雅写法代码详解
2018/11/07 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
在Python中处理列表之reverse()方法的使用教程
2015/05/21 Python
详谈python http长连接客户端
2017/06/12 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
局域网定义和特性
2016/01/23 面试题
自我评价是什么
2014/01/04 职场文书
同学聚会策划方案
2014/06/06 职场文书
设备收款委托书范本
2014/10/02 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
2016国培学习心得体会
2016/01/08 职场文书