Javascript中判断对象是否为空


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

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

Javascript 相关文章推荐
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
Dec 12 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
jquery操作angularjs对象
Jun 26 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
Sep 01 Javascript
AngularJS $http模块POST请求实现
Apr 08 Javascript
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
如何在AngularJs中调用第三方插件库
May 21 Javascript
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 Javascript
JS实现checkbox互斥(单选)功能示例
May 04 Javascript
javascript事件委托的方式绑定详解
Jun 10 #Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 #Javascript
浅析JavaScript动画
Jun 10 #Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 #Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 #Javascript
jQuery取消ajax请求的方法
Jun 09 #Javascript
JavaScript动态添加style节点的方法
Jun 09 #Javascript
You might like
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
php语法检查的方法总结
2019/01/21 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
js操作select控件的几种方法
2010/06/02 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
一个简单的JavaScript Map实例(分享)
2016/08/03 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
详解Python编程中包的概念与管理
2015/10/16 Python
Python unittest模块用法实例分析
2018/05/25 Python
Django forms表单 select下拉框的传值实例
2019/07/19 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
年会搞笑主持词
2014/03/27 职场文书
历史学专业求职信
2014/06/19 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
试用期自我评价范文
2015/03/10 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
党员发展大会主持词
2015/07/03 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
浅谈Redis主从复制以及主从复制原理
2021/05/29 Redis