1 判断变量为空对象

判断一个变量是否为空对象时,可以通过 for...in 语句遍历变量的属性,然后调用 hasOwnProperty() 函数,判断是否有自身存在的属性,如果存在则不为空对象。

function isEmpty(obj) {
  for (item in obj) {
    if (obj.hasOwnProperty(item)) {
      return false;
    }
  }

  return true;
}

console.log(isEmpty({ a: 1 }));
console.log(isEmpty({}));

2 判断变量为空数组

判断变量为空数组时,首先需要判断变量是否为数组,然后通过 length 属性确定。

function isEmpty(arr) {
  if (Array.isArray(arr) && !arr.length) {
    return true;
  }

  return false;
}

function isEmpty(arr) {
  if (arr instanceof Array && !arr.length) {
    return true;
  }

  return false;
}

console.log(isEmpty([1, 2]));
console.log(isEmpty([]));

3 判断变量为空字符串

判断变量是否为字符串时,可以直接将其与空字符串比较,或者调用 trim() 函数去掉前后的空格,然后判断字符串的长度。

str === '' || str.trim().length === 0

4 判断数据是数组还是对象

注意:先判断是否为数组,再判断是否为对象。

function _isArrOrObj(value) {
  if (typeof value !== 'object') return '既不是数组也不是对象';
  // if (value instanceof Array) return '是数组'
  if (Array.isArray(value)) return '是数组'
  return '是对象'
}

console.log(_isArrOrObj(1))   // '既不是数组也不是对象'
console.log(_isArrOrObj({}))  // '是对象'
console.log(_isArrOrObj([]))  // '是数组'
console.log(_isArrOrObj(function(){}))  // '既不是数组也不是对象'
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐