判断变量为null或者undefined
判断一个变量是否为空时,可以直接将变量与null或者undefined进行比较,需要注意==和===的区别
判断对象为空时
判断一个变量是否为空对象时,可以通过for...in语句遍历变量属性,然后调用hasOwnProperty()函数,判断是否有自身存在的属性,如果存在则不为空对象,如果不错在自身的属性(不包括继承的属性),那么变量为空对象。
var obj = {}
function isEmpty(obj) {
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
return false
}
}
return true
}
console.log(isEmpty(obj)) // true
function X() {
X.prototype.name = '原型上添加'
}
var obj = new X
console.log(isEmpty(obj)); // true
判断变量为空字符串时
判断变量是否为空字符串时,首先需要判断变量是否为数组,然后通过length属性确定是否为空。
var arr = []
if (arr.instanceOf && arr.length === 0) { //instanceOf可以帮助排除伪数组
console.log('这是一个空数组');
} else {
console.log('这是不一个空数组');
}
// 这是一个空数组
判断变量为空字符串
判断变量为空字符串时,可以直接与其将空字符串比较,或者用trim()去掉后面的空格,然后判断字符串的长度。
var str = ''
if(str === '' || str.trim().length == 0){
...
}