You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何赋值字符串的变量在if语句中判断结果为true?

为什么非空字符串在if判断中会被判定为true?

先看你的示例代码:

hide = 'string'

if (hide) {                                  
  otherText.value = '';                       
}

这是JavaScript的隐式类型转换导致的——当你在if条件里放一个非布尔值时,JS会自动把它转换成布尔值来判断真假。

JS里有一组被称为「假值」的类型,只有这些值会被转成false:

  • 空字符串(''/"")
  • 数字0和NaN
  • null
  • undefined
  • 布尔值false本身

除此之外的所有值,包括非空字符串、非零数字、对象、数组等,都会被转成true。你代码里的hide是个非空字符串,自然会被判定为true,从而进入if分支执行代码。

如果需要精准判断字符串内容,得用严格相等运算符,比如if (hide === 'string');要是只是想检查字符串是否非空,用if (hide)这种写法就足够简洁。

内容的提问来源于stack exchange,提问作者Joe Black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:50:22