空字符串""是原生falsy值,而空数组[]是truthy值;javascript中仅6个原生falsy值:false、0、-0、0n、""、null、undefined、nan;判断空数组需显式检查length,如!arr.length。

在 JavaScript 中,空字符串 "" 和空数组 [] 本身**不是假值(falsy)**,但可以通过显式转换或逻辑判断让它们表现为 false。关键在于理解 JS 的类型转换规则和如何安全地做“语义化”判断。
哪些值是原生 falsy?
JavaScript 中只有 6 个原生 falsy 值:
false-
0(包括-0和0n) -
""(空字符串)✅ nullundefinedNaN
注意:[](空数组)和 {}(空对象)都是 truthy,即使它们“看起来空”。所以 Boolean([]) === true,!![] === true。
把空字符串转为 false:直接用 Boolean() 或 !!
空字符串 "" 本身就是 falsy,所以转换非常直接:
Boolean("") === false!!"" === falseif ("") { ... } // 不执行
无需额外处理,它天然符合预期。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
把空数组转为 false:需显式检查长度
因为 [] 是 truthy,要让它“语义上为 false”,必须检查其是否为空:
Boolean(arr.length === 0) // true 当 arr = []!arr.length // 更简洁,[] → !0 → true;[1] → !1 → falseif (!arr.length) { /* arr 为空时执行 */ }
⚠️ 注意避免 !arr 或 arr == false —— 这些会因隐式转换产生意外结果(例如 ![] === false,因为 [] 转布尔是 true)。
统一处理字符串和数组的工具写法
如果函数需同时兼容两者,可封装一个“空值判断”逻辑:
const isEmpty = v => v == null || v === "" || (Array.isArray(v) && v.length === 0);isEmpty("") // trueisEmpty([]) // trueisEmpty("a") // falseisEmpty([1]) // false
这个函数返回 true 表示“业务意义上的空”,再取反即可得到你想要的布尔结果:!isEmpty(val) 等价于 “非空”。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










