使用默认参数解构 falsy 和 null

问题描述 投票:0回答:2

我试图了解如何使用默认参数来解构虚假值和空值。 以下是我运行过的一些示例:

// #1
const person = { email: '[email protected]' }
const { email = '' } = person
// email is '[email protected]'

// #2
const person = { email: '' }
const { email = '' } = person
// email is ''

// #3
const person = { email: false }
const { email = '' } = person
// email is boolean false.  why?!

// #4
const person = { email: null }
const { email = '' } = person
// email is null.  why?!

我可以编写一个快捷方式来解构 #3 和 #4 的假值和空值,以便我的电子邮件是空字符串吗?

javascript ecmascript-6
2个回答
79
投票

只有

undefined
才会导致默认初始化程序在解构和函数参数目标中运行。如果您想将所有错误值恢复为默认值,请使用旧的
||
运算符
来代替:

const email = person.email || '';

或者以可变变量为目标,然后使用逻辑或赋值

let { email } = person;
email ||= '';

0
投票

如果在解构中提取的值为空,我们可以通过以下方式重新评估支持值

const { COUNTRY = [], SITE = [] } = {SITE: [1, 2, 3]}

where
console.log(COUNTRY) // [] instead of undefined
console.log(SITE) // [1, 2, 3] 
© www.soinside.com 2019 - 2024. All rights reserved.