Nach MDN:Warum definiert ES6 map.length == 0?
Map.length
Der Wert der Länge Eigenschaft ist 0.
Was der Anwendungsfall dafür ist? Ich verstehe, warum Map.size
semantisch korrekt ist. Aber sicherlich ist eine Map.length
, die fast immer die "falsche" Antwort zurückgibt, eine schlechte Idee, besonders wenn es einen Kontrollcode von ES5 gibt. Gibt es eine Möglichkeit, einen Fehler zu erzwingen, wenn dieser verwendet wird?
[Hier ist der relevante Teil der Spezifikation] (http://www.ecma-international.org/ecma-262/6.0/#sec-properties-of-the-map-constructor) –
Es sagt ' Map.length' ist '0'. Nicht dass die '.length' Eigenschaft einer' neuen Map() '' 0' ist. Versuchen Sie: 'var m = new Map(); console.log (m.length, m.size, Map.length); '. –
Erklärt noch nicht * warum * 'Map.length === 0'. –