const fun = () => {};
fun?.(console.log('hoge'));
↑この時は console.log('hoge') が評価され、ログに hoge と表示される。
const notFun = undefined;
notFun?.(console.log('hoge'));
↑この時 console.log('hoge') は評価されない。つまりログにも hoge と出力されない。
|| 演算子や && 演算子はもう見慣れたから短絡評価される感覚があるけど、オプショナルチェーン演算子はまだ短絡評価されるという感覚が薄い。