判断空对象
let obj={};
if(obj){
//会进来这里。因为这样判断永远为真哦 即使obj为空对象这样判断是不行的。
}

1.JSON.stringify() :将对象转化为json字符串,再判断该字符串是否为"{}"
var obj1 = {};
var obj2 = {
name:'xxx',
age:20
};
function test(obj) {
var flag = JSON.stringify(obj);
if(flag === '{}'){
return true;
}else {
return false;
}
}
console.log('obj1',test(obj1)); // obj1 true
console.log('obj2',test(obj2)); // obj2 false
2.for 循环判断
var obj = {};
var b = function(obj) {
for(var key in obj) {
return false;
}
return true;
}
console.log(b(obj));//true
3.jquery的isEmptyObject方法
此方法是jquery将2方法(for in)进行封装,使用时需要依赖jquery
var data = {};
var b = $.isEmptyObject(data);
console.log(b);//true
4.Object.getOwnPropertyNames()方法
此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空
注意:此方法不兼容ie8,其余浏览器没有测试
var data = {};
var arr = Object.getOwnPropertyNames(data);
alert(arr.length == 0);//true
5.使用ES6的Object.keys()方法
var data = {};
var arr = Object.keys(data);
alert(arr.length == 0);//true
判断空数组
1、利用数组的length属性来判断
if(arrayName.length > 0){
//数组不为空
}else{
//数组为空
}
2、利用先判断类型,再判断长度的方法来实现。这样增加了代码的安全性,因为不是Array类型的话是没有length属性的。
if(A && A.constructor==Array && A.length==0)
本文介绍了在JavaScript中如何正确判断一个对象是否为空以及数组是否为空的多种方法,包括使用JSON.stringify(), for循环, jQuery的isEmptyObject方法, Object.getOwnPropertyNames(), 以及Object.keys()。对于数组,可以通过length属性或先判断类型再判断长度的方式来确保安全地识别空数组。"
120136129,7718955,React组件逻辑复用:HOC、Render Props与Hooks,"['react.js', '前端开发', '组件化']

2311

被折叠的 条评论
为什么被折叠?



