2016-09-16 62 views
2

我想了解如何使用默認參數解構falsey和null值。下面是一些例子,我跑:解構falsey和null與默認參數

// #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?! 

有一個快捷方式我會寫信給解構falsey和#3,#4,使我的電子郵件是一個空字符串空值?

+0

這將是一個真正的「爲什麼?」如果它違反了每個虛假價值。這個問題可能是XY問題的一部分,如果「人」是任意輸入的話,應該先根據你的規則進行調整和驗證。 – estus

回答

7

只有undefined將導致默認的初始化程序運行。如果你想退回到您的默認爲所有falsy值,使用好老||操作:

const email = person.email || '';