Ich weiß, was eine for... inSchleife ist (sie iteriert über den Schlüssel), habe aber beim ersten Mal davon gehört for... of(sie iteriert über den Wert).
Ich bin mit for... ofSchleife verwechselt . Ich habe kein Adjektiv bekommen. Dies ist der folgende Code:
var arr = [3, 5, 7];
arr.foo = "hello";
for (var i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (var i of arr) {
console.log(i); // logs "3", "5", "7"
// it is does not log "3", "5", "7", "hello"
}
Was ich habe, ist, for... ofiteriert über Eigenschaftswerte. Warum loggt es nicht (zurück) "3", "5", "7", "hello"statt "3", "5", "7"? Die for... inSchleife durchläuft jedoch jede Taste ( "0", "1", "2", "foo"). Hier for... initeriert die Schleife auch über den fooSchlüssel. Aber for... ofiteriert nicht über den Wert von fooEigentum dh "hello". Warum ist es so?
Lange Rede, kurzer Sinn:
Hier tröste ich for... ofSchleife. Es sollte sich protokollieren, "3", "5", "7","hello"aber hier wird es protokolliert "3", "5", "7". Warum ?
for ... ofwurde es in die Sprache gebracht, um die Probleme bei der Verwendung for ... inmit Arrays zu beheben . Array.prototypekönnte so geändert werden, dass zusätzliche Eigenschaften verfügbar sind, was es unsicher macht, sie zu wiederholen, da Sie möglicherweise nicht numerische Schlüssel erhalten, die Sie nicht erwartet haben.
ofSchlüsselworts (für… von Schleifen) , da es nach einem bestimmten Verhalten der Funktion fragt, anstatt nach einer allgemeinen Übersicht zu fragen.
for <key> infor <value> offor..of
