如何用一行代码从对象提取变量并设置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
相关产品推荐
相关产品推荐

