Appearance
空值检查 (isEmpty)
检查给定的值是否为空。
- 如果给定的值是字符串,检查它是否为空字符串
- 如果给定的值是数组、Map 或 Set,检查其大小是否为 0
- 如果给定的值是类数组对象,检查其长度是否为 0
- 如果给定的值是对象,检查它是否是没有属性的空对象
- 原始值(字符串、布尔值、数字或 bigints)被视为空
签名
typescript
function isEmpty(value: unknown): boolean;参数
value(unknown): 要检查的值。
返回值
(boolean) 如果值为空返回 true,否则返回 false。
示例
typescript
import { isEmpty } from '@fu/matrix';
// 或
const isEmpty = window.fuMatrix.isEmpty;
// 空值检查
isEmpty(null); // => true
isEmpty(undefined); // => true
isEmpty(''); // => true
isEmpty([]); // => true
isEmpty({}); // => true
isEmpty(new Map()); // => true
isEmpty(new Set()); // => true
isEmpty(0); // => true
isEmpty(false); // => true
isEmpty(true); // => true
isEmpty(123); // => true
isEmpty({ length: 0 }); // => true (类数组对象)
// 非空值检查
isEmpty('text'); // => false
isEmpty([1, 2]); // => false
isEmpty({ a: 1 }); // => false
isEmpty({ 0: 'a', length: 1 }); // => false (类数组对象)空值判断规则
以下值被视为空:
nullundefined- 空字符串
'' - 空数组
[] - 空对象
{} - 空 Map
new Map() - 空 Set
new Set() - 空类数组对象
{ length: 0 } - 所有数字(包括
0) - 所有布尔值(包括
false和true) - 所有 BigInt 值
以下值不被视为空:
- 非空字符串(包括只有空格的字符串
' ') - 非空数组
- 非空对象
- 非空 Map 和 Set
- 非空类数组对象
- 函数
- 日期对象
- 正则表达式
注意事项
- 该函数主要用于检查容器是否为空以及值是否为原始值
- 与
isInvalid函数不同,该函数将所有数字和布尔值视为空 - 对于 Map 和 Set,检查其 size 属性是否为 0
- 对于普通对象,检查其是否有自己的可枚举属性
- 对于类数组对象,检查其 length 属性是否为 0
- 类实例通常不被视为空,除非它们没有自己的可枚举属性