Objectの比較と同一性を考える — ComparisonsからCompositesまで
LTTrack AJapanese
現在のJavaScriptでは、Object同士をその内容に基づいて比較する標準的な手段は提供されておらず、等値比較ではObjectの同一性に基づいて判定されます。
そのため、Objectの内容を比較する処理を自前で実装したり、MapのkeyやSetの値として利用する際に、プリミティブとは異なる挙動を意識したりする必要があります。
こうした問題に関連して、近年TC39ではComparisonsやCompositesといったProposalが議論されています。これらはObjectの比較やMap、Setでの扱いなど、互いに近い領域の課題に関わるProposalですが、その対象やアプローチは異なります。
このLTでは、ComparisonsとCompositesを紹介しながら、それぞれがObjectの比較や同一性に関わる課題にどのようなアプローチを取っているのかを対比的に説明します。

jiko21
エムスリー株式会社 / ソフトウェアエンジニア
新卒時よりフロントエンドエンジニアとしてキャリアをスタートし、メガベンチャーやスタートアップを経て、現職。