Ich kann eine grundlegende Frage stellen, aber ich weiß nicht, wie eine solche VerwirrungWarum werden diese beiden dynamischen Eigenschaftszuweisungen zu einem einzigen Wert zusammengefasst?
dieser Code unten durch Google-Suche löschen funktioniert gut und Worte zählen, so dass ich versuchte, weiter zu verstehen
var words = chunk.trim().split(' ');
var counts = {};
// Count words
words.forEach(function (word) {
word = word.trim();
if (word.length) {
if (!counts[word]) {
counts[word] = 0;
}
counts[word]++;
}
});
dann, warum gibt mir das unten 1,2
. Ich erwarte 1,2
und its me 2,2
var a = function(){
var a, b;
var obj = {}
obj[a]=1;
obj[b]=2;
console.log(obj[a]);
console.log(obj[b]);
}
var res = a();
Beide 'a' und 'b' sind' undefined', so die einzige Eigenschaft, die Sie Einstellung auf 'obj' hat die Name "undefined", so erhält es den letzten Wert, den Sie festlegen. Alle Objekteigenschaften sind im Grunde Zeichenfolgen (außer Symbole), also wird alles, was Sie für eine Eigenschaft angeben, in eine Zeichenfolge konvertiert. –
Verschiedene Möglichkeiten, dies zu testen, wären 'console.log()' die Werte von 'a' und' b', und das Ergebnis von 'Object.keys (obj)' zu protokollieren, um zu sehen, welche Schlüssel Sie ihm gegeben haben. –