ES2015でMapが導入されるまで、JavaScriptにおいてマップ型を実現するためにObjectが利用されてきました。 ただし、"マップとしてのObject"にはいくつかの問題があります。 Objectのprototypeオブジェクトから継承されたプロパティによって、意図しないマッピングを生じる危険性がある プロパティとしてデータを持つため、キーとして使えるのは文字列かSymbolに限られる マッピングとは →2つの要素を関連付けること 以下はMapオブジェクトのような動きをオブジェクトで表現しています。 prototypeオブジェクトから継承したプロパティと衝突することもわかります。 const map = {}; // マップがキーを持つことを確認する function has(key) { return typeof map[key] !== "undefined"; } co