javascript中怎么判断对象{}为空
有时候通过AJAX方法调用返回的是一个JSON对象,而这个对象可能在开发过程中会没有数据是一个空{}。
JavaScript判断object/json 是否为空,可以使用jQuery的isEmptyObject()方法。
function isEmptyObject(obj) {
for (var key in obj){
return false;//返回false,不为空对象
}
return true;//返回true,为空对象
}
console.log(isEmptyObject({"re": 2})); //false
console.log(isEmptyObject({})); //true
console.log(isEmptyObject(null)); //true //注意参数为null时无语法错误哦,即虽然不能对null空指针对象添加属性,但可以使用for in 语句
console.log(isEmptyObject(23)); //true
console.log(isEmptyObject({"te": 2})); //false
以上是实现这个方法的简单原理,在 jQuery 中直接调用方法即可。
jQuery.isEmptyObject({}) // true
jQuery.isEmptyObject({ foo: "bar" }) // false
亦可以用JavaScript中的一个方法,Object.getPropertyNames()返回除原型属性以外的所有属性(包括不可枚举的属性)名组成的数组
因为他的返回值是一个数组,可以用返回值的length是否为0来判断
function bools(){
if(Object.getOwnPropertyNames(msg.d).length ===0)return false;//返回false,为空对象
return true;//返回true,不为空对象
}
console.log(bools({}));
检测对象是否是空对象(不包含任何可读属性)。
方法只既检测对象本身的属性,不检测从原型继承的属性。function isOwnEmpty(obj)
{
for(var name in obj)
{
if(obj.hasOwnProperty(name))
{
return false;//返回false,不为空对象
}
}
return true;//返回true,为空对象
};
{} 与 null 的区别:
var a = {};
var b = null;
a.name = 'realwall';
b.name = 'jim'; //这里会报错,b为空指针对象,不能像普通对象一样直接添加属性。
b = a;
b.name = 'jim'; //此时 a 和 b 指向同一个对象。a.name, b.name 均为'jam'
javascript中怎么判断对象{}为空的更多相关文章
- 简述Js中,判断对象为空对象的几种方式
1.空对象.空引用以及undefined三种概念的区别 空对象:是对象,但它的值是指向没有任何属性的对象的引用, {}是指 不含任何属性 的对象,当然对象属性包括 字面值和函数: 空引用:obj=nu ...
- Javascript学习1 - Javascript中的类型对象
原文:Javascript学习1 - Javascript中的类型对象 1.1关于Numbers对象. 常用的方法:number.toString() 不用具体介绍,把数字转换为字符串,相应的还有一个 ...
- JavaScript中正则表达式判断匹配规则以及常用的方法
JavaScript中正则表达式判断匹配规则以及常用的方法: 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想 ...
- 【JavaScript】JavaScript中的ActiveXObject对象
JavaScript中ActiveXObject对象是启用并返回 Automation 对象的引用. 使用方法: newObj = new ActiveXObject( servername.t ...
- 【跟着子迟品 underscore】JavaScript 中如何判断两个元素是否 "相同"
Why underscore 最近开始看 underscore.js 源码,并将 underscore.js 源码解读 放在了我的 2016 计划中. 阅读一些著名框架类库的源码,就好像和一个个大师对 ...
- JavaScript中创建字典对象(dictionary)实例
这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...
- JavaScript中如何判断两变量是否“相等”?
1 为什么要判断? 可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗? ...
- javascript中如何获取对象名
javascript中如何获取对象名 一.总结 一句话总结:将对象传入参数,看参数是否为函数(js中的对象和函数是一个意思么(函数肯定是对象)),对象参数.name属性即可获得 //版本4 funct ...
- javascript中怎么判断两个数据类型相等
在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "obj ...
随机推荐
- android 网络请求Ⅰ
本章讲述在android开发中,常用的网络请求操作.网络请求利用android基本的HttpURLConnection连接URL和开源网络请求包AsyncHttpClient.本次网络请求以调取天气接 ...
- 基于ambari2.4.0进行二次开发
目录 线上修改 源码结构 技术点 编译环境的搭建 安装samba 安装编译环境 整体编译 ambari-web的编译 WEB内容修改 wiki:https://cwiki.apache.org/co ...
- MySQL有关Group By的优化
昨天我写了有关MySQL的loose index scan的相关博文(http://www.cnblogs.com/wingsless/p/5037625.html),后来我发现上次提到的那个优化方法 ...
- android 遇到问题未处理
在gridview 全屏,然后上面增加一个悬浮按钮,这样的布局如何设置 问题点,用相对布局,在代码寻找gridview的id时就报错了
- ubuntu下设置开机启动服务
原文:http://blog.csdn.net/dante_k7/article/details/7213151 在ubuntu10.04之前的版本都是使用chkconfig来进行管理,而在之后的版本 ...
- mysql 一些命令
show processlist; 查看服务进程列表show engines; 所有提供的引擎show variables like '%storage_engine%'; 当前默认的存储引擎show ...
- UVA11525 Permutation[康托展开 树状数组求第k小值]
UVA - 11525 Permutation 题意:输出1~n的所有排列,字典序大小第∑k1Si∗(K−i)!个 学了好多知识 1.康托展开 X=a[n]*(n-1)!+a[n-1]*(n-2)!+ ...
- 洛谷P1288 取数游戏II[博弈论]
题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流 ...
- java1.8函数式编程概念
有关函数式编程 ·1 函数作为一等公民 特点:将函数作为参数传递给另外一个函数:函数可以作为另外一个函数的返回值 ·2 无副作用 函数的副作用指的是函数在调用过程中,除了给出了返回值外,还修改了函数外 ...
- Hibernate组件映射
Hibernate联合主键映射以及组件映射 在Hibernate中联合主键的形成有两种可能:一种是由多对多映射形成的,多对多映射会形成第三张表,一般来说第三张表的主键是由其他两张表的主键构成的(比如学 ...