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

如何用一行代码从对象提取变量并设置undefined默认值?

一行代码实现对象提取变量并设置空值默认值

当然可以,你可以通过两种方式把原逻辑合并成一行:

  • 方式一:直接提取属性并使用空值合并运算符(??),完全等价于原代码逻辑:

    let name = user.name ?? "John"
    

    这个写法会在user.name为undefined或null时,将name设为"John",和你原两行代码的效果完全一致。

  • 方式二:如果要保持解构赋值的写法,也可以把两行合并成一行语句:

    let { name } = user; name ??= "John"
    

    不过这种写法用分号分隔了两个表达式,可读性不如第一种。

补充说明:如果只是想在属性**不存在或为undefined**时设置默认值,解构赋值里直接用=就行:

let { name = "John" } = user

但这个写法不会处理user.name为null的情况,和你原代码的逻辑有差异,根据你的需求,推荐用第一种方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:35:45