为什么不能用arr === null 来判断数组为空?
判断数组为空的一种方法是检查
arr.length === 0
.而用
arr === null
则会报错.
为什么呢?
暴走的骚动
9 years, 7 months ago
Answers
js中的数据类型
字符串、数字、布尔、数组、对象、Null、Undefined
===全等比较
比较2个相同类型的对象,如果类型不同,就直接返回false,如果类型相同,那就比较具体的值或具体的引用地址
var arr=null;
if(arr===null){
console.log('arr is null');
}
arr=undefined;
if(arr===null){
console.log('arr is null');
}else if(arr===undefined){
console.log('arr is undefined');
}
//arr赋值一个数组对象
arr=[];
//if(arr.length==0){
if(arr.length===0){
console.log('arr is empty');
}
所以在判断数组是否为空时,可以使用以下代码
对象在做逻辑判断的时候,如果值为null,undefined,转化boolean值 false
try{
if(!arr||(Object.prototype.toString.call(arr)==='[object Array]'&&arr.length===0)) {
console.log('arr is null or empty');
}
}cathc(error){
//处理arr未被声明的情况
}
Atlas
answered 9 years, 7 months ago