JS判断变量是否为空的方法

在 JavaScript 中,判断变量是否为空需要根据不同的数据类型和具体需求来处理。以下是常见场景的解决方案:


1. 基础判断:null 或 undefined

javascript

if (value === null || value === undefined) {
  // 变量为空
}

或简写为:

javascript

if (value == null) { // 同时匹配 null 和 undefined
  // 变量为空
}

2. 字符串:空或仅包含空格

javascript

if (typeof value === 'string' && value.trim() === '') {
  // 空字符串或全空格
}

3. 数组:长度为 0

javascript

if (Array.isArray(value) && value.length === 0) {
  // 空数组
}

4. 普通对象:无自身可枚举属性

javascript

if (typeof value === 'object' && 
    !Array.isArray(value) && 
    value !== null && 
    Object.keys(value).length === 0) {
  // 空对象 {}
}

5. 扩展类型:Map、Set

javascript

if ((value instanceof Map || value instanceof Set) && value.size === 0) {
  // 空的 Map 或 Set
}

综合函数

结合以上场景的通用函数:

javascript

function isEmpty(value) {
  if (value == null) return true; // null 或 undefined
  if (typeof value === 'string') return value.trim() === ''; // 字符串
  if (Array.isArray(value)) return value.length === 0; // 数组
  if (value instanceof Map || value instanceof Set) return value.size === 0; // Map/Set
  if (typeof value === 'object') 
    return Object.keys(value).length === 0; // 普通对象
  return false; // 其他类型(数字、布尔值等)
}

注意事项

  • 数字 0 和布尔值:通常不视为空,若需特殊处理,添加条件 value === 0

  • 特殊对象:如 DateRegExp,默认视为非空,需按需调整。

  • 字符串空格trim() 会移除首尾空格,若需严格空字符串,改用 value === ""


示例测试

javascript

isEmpty(null);          // true
isEmpty(undefined);    // true
isEmpty('');           // true
isEmpty('   ');        // true
isEmpty([]);           // true
isEmpty({});           // true
isEmpty(new Map());    // true
isEmpty(new Set());    // true
isEmpty(0);            // false
isEmpty(false);        // false
isEmpty({ a: 1 });     // false

根据实际需求调整判断逻辑,确保覆盖您的业务场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值