He visto a personas usar un código que se parece a
const STUFF_MAP = Object.create(null); STUFF_MAP le gustaría sugerir que solo se use como un mapa, por lo que entiendo por qué usar Object.create(null) es mejor que {} (eliminar las propiedades que podrían causar conflictos, etc.), pero ¿hay alguna ventaja en no solo usar?
const STUFF_MAP = new Map();¿Cuándo usaría cada uno? ¿Tiene que ver con estar compilado a pre es6?
¿Tiene que ver con estar compilado a pre es6?
Sí, Object.create(null) es ES5 y no necesitará un polyfill para Map , si necesita compatibilidad con navegadores antiguos.
Aparte de eso, debería preferir el Map más moderno que también indica claramente el propósito de una variable. Deberá acceder a la colección utilizando los métodos has / get / set , no in la sintaxis/asignación de operador/paréntesis. Esto a veces puede conducir a un código que no es tan conciso, por ejemplo, para incrementar un valor , no puede usar un operador de asignación compuesto.
En cuanto al rendimiento, no debería haber mucha diferencia; si le importa, haga un punto de referencia para su situación particular.