はじめに
こんにちは。皆さん、箱アイス買いますか?夏になるとパッケージの裏がはがきになってて、懸賞応募できるようになっているアイスとかありますよね!私は毎年あずきバー食べて送ってます、筆者です
(当たったことはないです。)
さて、たまにMDNのJavaScriptのドキュメントを眺めているのですが、オプショナルチェイニングってご存じでしょうか?
これ↓
ざっくり、存在しないプロパティのときにエラーにならないでundefinedで済むうれしいやつです。
PHP使いの方には、PHP8で追加されたNullsafe operatorとほぼ同じやつです
サンプルコード
const adventurer = {
name: 'Alice',
cat: {
name: 'Dinah'
}
};
const dogName = adventurer.dog?.name;
console.log(dogName);
// expected output: undefined
本題
オプショナルチェイニングですが、関数にも使えるんです!
普段PHPばっかり書いている自分からしたら、一瞬ぽかんでしたが、そういえばJavaScriptって関数はオブジェクトだったということを思い出して、**そりゃいけるわ!**と納得しました
console.log(adventurer.someNonExistentMethod?.());
// expected output: undefined
JavaScriptの関数はオブジェクト
JavaScript において、関数は第一級オブジェクトです。すなわち、関数はオブジェクトであり、他のあらゆるオブジェクトと同じように操作したり渡したりすることができます。具体的には、関数は Function オブジェクトです。
おわりに
関数にオプショナルチェイニングを使用したときの、今まで見たことない ?.()
の部分の文字列の並びにちょっとしびれました。
それでは!