Javascript中判断对象是否为空

 更新时间:2015年06月10日 09:12:55   投稿:junjie  
这篇文章主要介绍了Javascript中判断对象是否为空,本文利用Javascript 中的对象就是一个字典的特性,检查对象中有没有键值对实现判断对象是否为空,需要的朋友可以参考下

发现了一个巧妙的实现: 需要检查一个对象(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。从效率上来说,由于只读取了一个元素,顶多加上一些跳出循环的开销,实际性能不会比原生方法差太多。这是一个非常巧妙的实现。

注:有网友指出 ES5 中提供了 Object.getOwnPropertyNames 方法来获取所有的元素键。它的返回值是一个数组,当数组长度为零时,说明对象为空。

相关文章

  • JavaScript实现select添加option

    JavaScript实现select添加option

    这篇文章主要介绍了JavaScript为select添加option的方法和示例,十分的简单实用,有需要的小伙伴可以参考下。
    2015-07-07
  • JavaScript闭包相关知识解析

    JavaScript闭包相关知识解析

    这篇文章主要介绍了JavaScript闭包相关知识解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 微信小程序常用表单组件的使用详解

    微信小程序常用表单组件的使用详解

    本文主要为大家介绍了微信小程序中常用的几个表单组件的使用方法,例如:button、CheckBox、input、form等,感兴趣的可以了解一下
    2022-03-03
  • javascript客户端遍历控件与获取父容器对象示例代码

    javascript客户端遍历控件与获取父容器对象示例代码

    本篇文章主要是对javascript客户端遍历控件与获取父容器对象示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • 一文带你理解微信小程序中RPC通信的实现

    一文带你理解微信小程序中RPC通信的实现

    在微信小程序开发中,要实现两个线程之间的通信是一项重要的任务,所以本文就来讲讲如何使用小程序的 postMessage 和 addListener API 来实现在两个线程之间进行高效的 RPC 通信吧
    2023-06-06
  • document.getElementById为空或不是对象的解决方法

    document.getElementById为空或不是对象的解决方法

    document.getElementById为空或不是对象的解决方法,一般情况下注意先内容后js.
    2010-01-01
  • 简单谈谈原生js的math对象

    简单谈谈原生js的math对象

    下面小编就为大家带来一篇简单谈谈原生js的math对象。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • JS实现数组删除指定元素功能示例

    JS实现数组删除指定元素功能示例

    这篇文章主要介绍了JS实现数组删除指定元素功能,涉及javascript数组遍历、排序、判断等相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • JavaScript页面实时显示当前时间实例代码

    JavaScript页面实时显示当前时间实例代码

    最近因为项目需要,有个需求是让实时显示当前时间,然后想想这不简单吗,自己就动手敲代码,但是发现一个问题,通过getMonth()得到月份,总是会比当前月份少1,深深觉得实践出真知啊…之前觉得Date对象挺简单的,有很多细节都没有注意。下面这篇文章就给大家详细介绍下。
    2016-10-10
  • JS Excel读取和写入操作(模板操作)实现代码

    JS Excel读取和写入操作(模板操作)实现代码

    前一段时间一直在做报表,所以肯定会用到Excel的操作,但是在网上查阅资料有关JS操作excel较少,有的话,也都是老生常谈或很零碎的一些东西。
    2010-04-04

最新评论