分割代入 - 引数に指定されたオブジェクトの属性への参照

以下のように、引数なしでuserId()を呼ぶとTypeErrorが発生する

const user = {
    id: 42,
    name: 'Taro',
    age: 10,
};
  
function userId({id}) {
    return id;
}

function userName({name} = {}) {
    return name;
}

function userAge(age) {
    return age;
}

console.log(userId(user)); // 42
console.log(userName(user)); // Taro
console.log(userAge(user.age)); // 10

console.log(userAge()); // undefined
console.log(userName()); // undefined
console.log(userId()); // TypeError: Cannot destructure property `id` of 'undefined' or 'null'.