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

字符串拼接时如何检测falsy字符串值而不使用if语句?

核心原因

你遇到的情况本质是:仅由空格组成的字符串属于truthy值,所以||运算符不会触发右侧的兜底逻辑。不需要使用if语句的话,有两种常用实现方案:

方案1:使用trim()处理后判断

如果业务逻辑中「全空白字符串」等价于无意义的空值,直接对拼接结果做trim()即可。trim()会移除字符串首尾的所有空白字符,全空白的字符串处理后会得到空字符串(falsy值),刚好符合逻辑:

let var1 = '';
let var2 = '';
// 模板字符串写法
let ex1 = `${var1} ${var2}`.trim() || "Is Falsy";
// 加号拼接写法
let ex2 = (var1 + ' ' + var2).trim() || "Is Falsy";

⚠️ 注意这个方案会把返回的有效字符串的首尾空白一同去掉,如果需要保留原始字符串的格式,用第二种方案。

方案2:正则匹配+三元表达式判断

如果需要保留原始字符串的前后空格,仅在整个字符串全为空白时才走兜底逻辑,可以用正则匹配全空白的规则,搭配三元表达式实现:

let var1 = '';
let var2 = '';
// ^\s*$ 正则匹配全为空白字符(空格、制表符、换行等)的字符串
let ex1 = /^\s*$/.test(`${var1} ${var2}`) ? "Is Falsy" : `${var1} ${var2}`;
let ex2 = /^\s*$/.test(var1 + ' ' + var2) ? "Is Falsy" : var1 + ' ' + var2;

这种方案不会修改有效字符串的原始格式,适用性更广。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:54:05