Secondo MDN:Perché ES6 definisce map.length == 0?
Map.length
Il valore della proprietà length è 0.
Qual è il caso d'uso per questo? Capisco perché Map.size
è semanticamente corretto. Ma sicuramente un Map.length
che restituisce quasi sempre la risposta "sbagliata" è una cattiva idea, soprattutto se c'è un codice di migrazione di supervisione da ES5. C'è un modo per forzare un errore quando viene usato?
[Ecco anche la parte rilevante della specifica] (http://www.ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-constructor) –
Dice ' Map.length' è '0'. Non che la proprietà '.length' di una' nuova Map() 'sia' 0'. Prova: 'var m = new Map(); console.log (m.length, m.size, Map.length); '. –
Ancora non spiega * perché * 'Map.length === 0' però. –