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

如何在JavaScript中不使用if和三元运算符,实现a为falsy时将b赋值给result

可行实现思路

核心方案1(适配常规需求:a为truthy时result取a,a为falsy时取b)

利用JavaScript逻辑或||的短路特性实现:

  • 原理:||运算符会从左到右判断操作数的布尔值,遇到第一个truthy值直接返回该值,若所有左侧值都是falsy则返回最后一个操作数,完全符合题目要求,无需使用if或三元运算符。

实现代码:

function run(a, b) {
  let result
  result = a || b
  return result
}
// 也可以简化写法,省略result变量
function run(a, b) {
  return a || b
}

核心方案2(适配特殊需求:a为truthy时result为undefined,仅falsy时赋值b)

利用逻辑与&&的短路特性实现:

  • 原理:&&运算符遇到第一个falsy值直接返回该值,仅当左侧为truthy时才返回右侧值。对a取反后判断,刚好满足a为falsy时返回b,a为truthy时返回undefined。

实现代码:

function run(a, b) {
  let result
  result = !a && b
  return result
}

注意事项

  • 注意区分||和空值合并运算符??的差异:??仅判断null/undefined两类空值,不会把0、''、false等常规falsy值视为假值,如果题目要求的falsy包含上述值,不要用??实现。
  • JavaScript标准falsy值列表:false、0、-0、0n、空字符串''、null、undefined、NaN,以上值都会触发赋值b的逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:57:03