Nullオブジェクトが渡された場合、オブジェクトの破棄によりエラーがスローされます
function test ({name= 'empty'}={}) {
console.log(name)
}
test(null);
Uncaught TypeError: 'undefined'または 'null'のプロパティ
name
を分解できません。テスト時(:1:15)時:1:1
docs を参照してください:
デフォルトの関数パラメーターを使用すると、値が指定されていないか未定義の場合、名前付きパラメーターをデフォルト値で初期化できます。
つまり、null
が渡された場合、デフォルトのパラメータは割り当てられません。
function fn(arg = 'foo') {
console.log(arg);
}
fn(null);
代わりに、関数の最初の行を分解します。
function test (arg) {
const { name = 'empty' } = arg || {};
console.log(name)
}
test(null);