Map オブジェクトはキーと値のペアを保持し、キーが最初に挿入された順序を覚えています。キーや値には任意の値(オブジェクトとプリミティブ値)を使用することができます。
//コンソールにて
let myMap = new Map()
let keyString = '文字列'
let keyObj = {}
let keyFunc = function() {}
// 値を設定する
myMap.set(keyString, "'文字列' と結び付けられた値")
myMap.set(keyObj, "keyObj と結び付けられた値")
myMap.set(keyFunc, "keyFunc と結び付けられた値")
myMap.size // 3
// 値を取得する
myMap.get(keyString) // "'文字列' と結び付けられた値"
myMap.get(keyObj) // "keyObj と結び付けられた値"
myMap.get(keyFunc) // "keyFunc と結び付けられた値"
myMap.get('文字列') // "'文字列' と結び付けられた値"
// keyString === '文字列' であるため
myMap.get({}) // undefined, keyObj !== {} であるため
myMap.get(function() {}) // undefined, keyFunc !== function () {} であるため