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

JS中有没有比a?a:b更简短的三元运算符等价写法?

JavaScript 简化条件返回写法解答

你设想的{name ! "no name"}不属于JavaScript合法语法,不存在该类用法,你需要的「优先返回第一个值,否则返回第二个值」的逻辑有两种成熟的简化实现方式:

  • 第一种:逻辑或运算符 ||
    兼容所有JavaScript版本,当第一个操作数为任意假值(包含null、undefined、空字符串''、数字0、布尔值false、NaN)时,返回第二个操作数,否则返回第一个操作数。你的场景可以直接写成:
    {name || "no name"}
    

    注意:如果name允许是空字符串、0这类需要保留的合法假值,该写法会不符合预期。

  • 第二种:空值合并运算符 ??
    这是ES2020新增的标准语法,仅当第一个操作数为null或undefined时才返回第二个操作数,其余假值会正常返回原值,更适合只判断值是否存在的场景,写法为:
    {name ?? "no name"}
    
    目前所有现代浏览器、React项目的默认编译环境都支持该语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:15:02