Open1

Js分割代入

oosukeoosuke

Q. aは何か?

const obj = {};
const {a = []} = obj;

A. a === [];

Q. aは何か?

const obj = {a: null};
const {a = []} = obj;

A. a === null;

javascriptではfalsyな値と判定された場合に初期値を入れる記述があるが、a || [] など。分割代入の場合は、undefinedの場合のみ指定した値がセットされる。nullなどはfalsyな値だが、この場合はnullがセットされる。プロパティが存在しているので当たり前ですが。