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

JavaScript中a = b || c、a = b && c这类表达式的正式名称是什么?

关于两类逻辑运算赋值写法的标准名称

你提到的两种写法基于JavaScript逻辑运算符的**短路求值(Short-circuit Evaluation)**核心特性,行业通用的标准称呼如下:

  • something = exprA || exprB 形式

    官方/通用名称为 逻辑或短路赋值,部分场景下也会被称为「默认值 fallback 赋值」。
    运行逻辑:表达式从左到右求值,若exprA的结果为truthy,直接返回该结果不再执行exprB(短路);若exprA为falsy,则执行exprB并返回其结果。你给出的计数示例obj[s] = ++obj[s] || 1就是这类写法的典型应用:当属性不存在时默认赋值为1,存在时自增计数。
  • something = exprA && exprB 形式

    官方/通用名称为 逻辑与短路赋值,部分场景下也会被称为「前置校验赋值」。
    运行逻辑:表达式从左到右求值,若exprA的结果为falsy,直接返回该结果不再执行exprB(短路);若exprA为truthy,则执行exprB并返回其结果。常见的嵌套属性安全访问写法const userName = userInfo && userInfo.name就属于这类应用。

补充参考

ES2021标准已经新增了对应简写的复合赋值运算符:

  • 逻辑或赋值运算符:||=,可将你的示例简化为obj[s] ||= 1; obj[s]++;
  • 逻辑与赋值运算符:&&=,可将嵌套属性赋值示例简化为userInfo &&= userInfo.name;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:45:04