Mapear Objeto vs em JavaScript

Acabei de descobrir o chromestatus.com e, depois de perder várias horas do meu dia, encontreiesta entrada de recurso:

Mapa: os objetos do mapa são mapas simples de chave / valor.

Isso me confundiu. Objetos JavaScript regulares são dicionários, então como éMap diferente de um dicionário? Conceitualmente, eles são idênticos (de acordo comQual é a diferença entre um mapa e um dicionário?)

A documentação chromestatus referências não ajuda:

Objetos de mapa são coleções de pares de chave / valor, em que ambas as chaves e valores podem ser valores arbitrários de linguagem ECMAScript. Um valor-chave distinto só pode ocorrer em um par chave / valor dentro da coleção do Mapa. Valores-chave distintos como discriminados usando o algoritmo de comparação selecionado quando o Mapa é criado.

Um objeto Map pode iterar seus elementos em ordem de inserção. O objeto de mapa deve ser implementado usando tabelas de hash ou outros mecanismos que, em média, fornecem tempos de acesso sublinear o número de elementos na coleção. As estruturas de dados usadas nesta especificação de objetos de Mapa destinam-se apenas a descrever a semântica observável requerida de objetos Map. Não se destina a ser um modelo de implementação viável.

… Ainda soa como um objeto para mim, tão claramente que eu perdi alguma coisa.

Por que o JavaScript está ganhando um (bem suportado)Map objeto? O que isso faz?

questionAnswers(8)

yourAnswerToTheQuestion