判断一个对象是否为空
2017-04-20 17:46
148 查看
由判断一个对象是否有属性(即{}),引发的一系列思考:
1. 首先要想判断一个对象是否为null,很简单,使用
2. 判断一个对象是否有任何属性:
方法一:使用
JavaScript判断object/json 是否为空,可以使用jQuery的isEmptyObject()方法。
和喵大婶探讨,得到方法二:
数组的toString方法是把数组转为字符串形式,对象的toString方法是转为类型,因为Object.prototype.toString.call(obj).slice(8,-1); 是输出类型。
那把伪数组转为数组,再判断length,是不是可以呢。他是有条件的:
伪数组转为真正数组的条件:
1.伪数组的键值需要为数字(对应数组的下标),否则转换后数组均无初始值
2.有length属性
例:
不含有length:
属性值不为数字,肯定不能转为数组,无法对应下标,结果也为[].
正确使用:
注意:要是属性数字大小和length不匹配,以length为准,没有定义的下标对应的数组值为undefined。
1. 首先要想判断一个对象是否为null,很简单,使用
if(obj)或者
obj==null直接判断即可。
2. 判断一个对象是否有任何属性:
方法一:使用
for in判断,是否含有属性。(好方法)
JavaScript判断object/json 是否为空,可以使用jQuery的isEmptyObject()方法。
function isEmptyObject(e) { var t; for (t in e) return !1; return !0; } console.log($.isEmptyObject({"re": 2})); //false console.log(isEmptyObject()); //true console.log(isEmptyObject({})); //true console.log(isEmptyObject(null)); //true console.log(isEmptyObject(23)); //true console.log(isEmptyObject({"te": 2})); //false
和喵大婶探讨,得到方法二:
对象使用JSON.stringify转为字符串,判断长度是否大于2
var obj = { 'name': 'xiaowei', 'heihei': '12', 'haha': 'girl' }; var myobj = {}; var nullobj = null; //自创方法 function isEmptyProperty(obj) { if (typeof obj === 'object' && obj) { if (JSON.stringify(obj).length > 2) { return !1; } } return !0; } console.log(isEmptyProperty(23)); //true console.log(isEmptyProperty(obj)); //false console.log(isEmptyProperty(myobj)); //true console.log(isEmptyProperty(nullobj)); //true
数组的toString方法是把数组转为字符串形式,对象的toString方法是转为类型,因为Object.prototype.toString.call(obj).slice(8,-1); 是输出类型。
那把伪数组转为数组,再判断length,是不是可以呢。他是有条件的:
伪数组转为真正数组的条件:
1.伪数组的键值需要为数字(对应数组的下标),否则转换后数组均无初始值
2.有length属性
例:
不含有length:
var obj = { 0:"abc", 1:"def", 2:"hig" } var arr = [].slice.call(obj); console.log(arr); //[]
属性值不为数字,肯定不能转为数组,无法对应下标,结果也为[].
正确使用:
var obj = { 0:"abc", 1:"def", 2:"hig", length:3 } var arr = [].slice.call(obj); console.log(arr); //输出结果: (3) ["abc", "def", "hig"] 0:"abc" 1:"def" 2:"hig" length:3 __proto__:Array(0)
注意:要是属性数字大小和length不匹配,以length为准,没有定义的下标对应的数组值为undefined。
相关文章推荐
- 判断一个对象是否存在, 谁更快?
- .net C# 如何判断一个对象是否具有某个方法
- python判断某个对象是否可以做一个字典的键多方法
- 不良代码展示-不要用数组循环判断等于的方式,来判断一个对象是否在一个集合内
- js判断一个变量或对象是否存在
- 判断比较两个对象是否是一个对象(equals方法)
- javascript下判断一个对象是否具有指定名称的属性的的代码
- 如何判断一个对象是否为jquery对象
- js判断一个对象是否存在
- 判断一个对象是否存在
- javascript下判断一个对象是否具有指定名称的属性的的代码
- 通过序列化来判断一个对象是否已经更改
- 用jquery判断一个对象是否存在不能用
- 如何用创建命名对象来判断应用程序是否已有一个实例在运行?
- java中判断一个对象是否实现了某个接口
- java中判断一个对象是否实现了某个接口
- 判断页面一个对象是否存在
- js判断一个对象是否存在
- 用jquery判断一个对象是否存在不能用
- 在ASP中判断一个对象是否已被释放