ES6の記法でよく見かける以下の書き方ですが、どういう条件でhogeに値が渡ってくるのかまとめました(名前とかあるのかな → 分割代入というそうです)
let { hoge } = obj;
今回のサンプルのために以下の関数を用意しました
function out(val) {
let { value = 'no value' } = val;
console.log(value);
}
値が渡ってこないパターン
out({});
結果
no value
out({ value: undefined });
結果
no value
値が渡ってくるパターン
out({ value: 'has value' });
結果
has value
out({ value: null });
結果
null
その他の記法
let { value: temp = 'no value' } = val;
これは以下のような挙動になります
- valにプロパティvalueが有る時 → valueの値がtempに入る
- valにプロパティvalueが無い時 → 'no value'がtempに入る