JavaScript假值判断陷阱(Falsy Value Trap)

位置:首页 / 技术中心 / 杂项

杂项 Admin 2026-05-18 18:15:40 189

## 问题概括:JavaScript假值判断陷阱(Falsy Value Trap)

### 核心问题

在JavaScript中,使用 !value 或 if (!value) 判断"是否为空"时,会错误地将数字 0 也视为"空/假",因为 0 是JavaScript中的 假值 (falsy value)。


### 常见假值列表

JavaScript中有以下6个假值:


- false

- 0 和 -0

- "" (空字符串)

- null

- undefined

- NaN

### 问题场景

当表单选择框的值为数字 0 (如"试住"选项的值)时, !0 返回 true ,导致条件判断逻辑错误。


### 正确做法

需要 精确判断 ,明确区分"未选择"和"选择了值为0的选项":


```

// 错误:!0 === true,会错误拦截值为0的情

if (!value) { ... }


// 正确:精确判断undefined/null/空字符串

if (value === undefined || value === 

null || value === '') { ... }

```

### 经典程度

这是前端开发者 入门必踩的坑 ,几乎每个前端开发者都经历过类似的问题,是面试中常见的基础知识点。


任务完成

18455111359 扫描二维码