[高质量代码分享] JavaScript 空值判断(工具)函数
文章目录
- [高质量代码分享] JavaScript 空值判断(工具)函数
- 一、代码分享
- 二、代码解读
- 2.1 主要特点
- 2.1.1. **功能全面**
- 2.1.2. **配置选项灵活**
- 2.1.3. **类型处理层次清晰**
- 2.2 实现细节分析
- 2.2.1. 基本类型处理
- 2.2.2. 对象类型处理(核心部分)
- 2.2.3. 类实例处理(重要特性)
- 2.2.4. 属性检查全面
- 2.2.5. 原型链处理
- 2.3 优势和亮点
- 2.3.1. 渐进增强
- 2.3.2. 兼容性好
- 2.3.3. 可扩展性强
- 2.3.4. 调试友好
- 2.4 潜在问题
- 2.4.1. 性能考虑
- 2.4.2. 设计选择
- 2.4.3. 边界情况
- 2.5 使用建议
- 2.6 总结
一、代码分享
分享一段高质量 JavaScript 空值判断的工具函数:
// util.js:importlodash_isEmptyfrom'lodash/isEmpty'/** * 判断值是否为空 * @param {*} value - 要检查的值 * @param {Object} options - 配置选项 * @param {boolean} options.trimStrings - 是否修剪字符串(默认:true) * @param {boolean} options.zeroAsEmpty - 0是否视为空(默认:true) * @param {boolean} options.falseAsEmpty - false是否视为空(默认:true) * @param {boolean} options.nanAsEmpty - NaN是否视为空(默认:true) * @param {boolean} options.classInstanceAsEmpty - 类实例是否检查其属性(默认:false) * @returns {boolean} - 如果值为空返回 true,否则返回 false */exportfunctionisEmpty(value,options={}){// 默认配置constconfig={trimStrings:true,zeroAsEmpty:true,falseAsEmpty:true,nanAsEmpty:true,classInstanceAsEmpty:false,...options};// 1. 处理 null 和 undefinedif(value===null||value===undefined){returntrue;}// 2. 处理数字if(typeofvalue==='number'){if(config.nanAsEmpty&&isNaN(value)){returntrue;}if(config.zeroAsEmpty&&value===0){returntrue;}returnfalse;}// 3. 处理布尔值if(typeofvalue==='boolean'){returnconfig.falseAsEmpty&&value===false;}// 4. 处理字符串if(typeofvalue==='string'){conststr=config.trimStrings?value.trim():value;returnstr.length===0;}// 5. 处理数组if(Array.isArray(value)){returnvalue.length===0;}// 6. 处理 BigIntif(typeofvalue==='bigint')