1. 程式人生 > >解構賦值用在函式引數中的一點特性

解構賦值用在函式引數中的一點特性

//一個同時擁有引數預設值和解構賦值預設值的方法
function a({a=1,b=2}={a:3,b:4})
{
    console.log({a,b});
}

a() // 使用物件的預設值 {a: 3, b: 4}
a(undefined) // {a: 3, b: 4} 傳入undefined等同於沒傳

a({}) // 使用value的預設值 {a: 1, b: 2}
a(10000) // 傳入非物件時等同於傳入空物件 {a: 1, b: 2}
a({a:100}) // 使用部分value的預設值 {a: 100, b: 2}

a(null) // TypeError: Cannot destructure property `a` of 'undefined' or 'null'

a({a:undefined}) // undefined 會被忽略,等同於沒有該鍵值 {a: 1, b: 2} 
a({a:null}) // 但null不會被忽略 {a: null, b: 2}