JS中有没有比a?a:b更简短的三元运算符等价写法?
JavaScript 简化条件返回写法解答
你设想的{name ! "no name"}不属于JavaScript合法语法,不存在该类用法,你需要的「优先返回第一个值,否则返回第二个值」的逻辑有两种成熟的简化实现方式:
- 第一种:逻辑或运算符
||
兼容所有JavaScript版本,当第一个操作数为任意假值(包含null、undefined、空字符串''、数字0、布尔值false、NaN)时,返回第二个操作数,否则返回第一个操作数。你的场景可以直接写成:{name || "no name"}注意:如果
name允许是空字符串、0这类需要保留的合法假值,该写法会不符合预期。 - 第二种:空值合并运算符
??
这是ES2020新增的标准语法,仅当第一个操作数为null或undefined时才返回第二个操作数,其余假值会正常返回原值,更适合只判断值是否存在的场景,写法为:
目前所有现代浏览器、React项目的默认编译环境都支持该语法。{name ?? "no name"}
内容的提问来源于stack exchange,提问作者Nick H
相关产品推荐
相关产品推荐

