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

JavaScript中如何仅在值为undefined时设置默认值?

仅针对undefined设置默认值的优雅方案

在JavaScript中,||运算符会将所有假值(包括false、0、空字符串等)都触发默认值,无法满足仅在值为undefined时使用默认值的需求。以下是几种优雅的解决方案:

1. 空值合并运算符(??)

ES2020引入的空值合并运算符是最贴合需求的方案,它仅在左侧值为null或undefined时返回右侧的默认值,其他任何假值都会被保留,且只需调用一次目标函数:

let mySettings = settings.getSync('aBooleanKey') ?? true;

示例效果:

  • 当settings.getSync('aBooleanKey')返回false时,最终值为false
  • 当返回undefined或null时,最终值为true

2. 兼容旧环境的替代方案

如果运行环境不支持ES2020,可以用立即执行函数包裹单次函数调用,避免重复执行:

// 普通函数写法
let mySettings = (function(val) {
  return val === undefined ? true : val;
})(settings.getSync('aBooleanKey'));

// 箭头函数简化写法
let mySettings = (val => val === undefined ? true : val)(settings.getSync('aBooleanKey'));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:25:20