飞鸟数据集实战:小目标与密集场景检测调优指南
2026/10/24 4:17:45
在 JavaScript 中,判空(检查变量是否为“空”值)需要针对不同数据类型进行区分。根据你的需求,“空”包括:空数组、空对象、空字符串、0、undefined、null、空 Map、空 Set。
if(value==null){// 等价于 value === null || value === undefinedconsole.log("值为 null 或 undefined");}functionisEmpty(value){return(value==null||// null 或 undefined(typeofvalue==="string"&&value.trim()==="")||// 空字符串或全空格(Array.isArray(value)&&value.length===0)||// 空数组(typeofvalue==="object"&&Object.keys(value).length===0)||// 空对象(valueinstanceofMap&&value.size===0)||// 空 Map(valueinstanceofSet&&value.size===0)// 空 Set// 注意:0 不算空,除非额外处理);}// 测试console.log(isEmpty(null));// trueconsole.log(isEmpty(undefined));// trueconsole.log(isEmpty(""));// trueconsole.log(isEmpty(" "));// trueconsole.log(isEmpty([]));// trueconsole.log(isEmpty({}));// trueconsole.log(isEmpty(newMap()));// trueconsole.log(isEmpty(newSet()));// trueconsole.log(isEmpty(0));// false(默认不算空,除非修改逻辑)functionisEmpty(value){return(value==null||(typeofvalue==="string"&&value.trim()==="")||(Array.isArray(value)&&value.length===0)||(typeofvalue==="object"&&Object.keys(value).length===0)||(valueinstanceofMap&&value.size===0)||(valueinstanceofSet&&value.size===0)||value===0// 0 也算空);}console.log(isEmpty(0));// trueNumber.isNaN(value)functionisEmpty(value,treatZeroAsEmpty=false){return(value==null||(typeofvalue==="string"&&value.trim()==="")||(Array.isArray(value)&&value.length===0)||(typeofvalue==="object"&&Object.keys(value).length===0)||(valueinstanceofMap&&value.size===0)||(valueinstanceofSet&&value.size===0)||(treatZeroAsEmpty&&value===0)// 可选:0 是否算空);}// 使用console.log(isEmpty(0));// falseconsole.log(isEmpty(0,true));// true(0 算空)| 数据类型 | 判空方式 |
|---|---|
| null / undefined | value == null |
| 空字符串 “” | value === “” 或 value.trim() === “” |
| 空数组 [] | Array.isArray(value) && value.length === 0 |
| 空对象 {} | Object.keys(value).length === 0 |
| 空 Map | value instanceof Map && value.size === 0 |
| 空 Set | value instanceof Set && value.size === 0 |
| 0 | 默认不算空,除非额外处理 |
| false | 通常不算空 |
| NaN | Number.isNaN(value) |
functionisEmpty(value,options={treatZeroAsEmpty:false}){return(value==null||(typeofvalue==="string"&&value.trim()==="")||(Array.isArray(value)&&value.length===0)||(typeofvalue==="object"&&Object.keys(value).length===0)||(valueinstanceofMap&&value.size===0)||(valueinstanceofSet&&value.size===0)||(options.treatZeroAsEmpty&&value===0));}