„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Die Geheimnisse der Reihenfolge der JavaScript-Objekteigenschaften

Die Geheimnisse der Reihenfolge der JavaScript-Objekteigenschaften

Veröffentlicht am 31.10.2024
Durchsuche:997

Jemand hat mich kürzlich gefragt, ob JavaScript-Objekteigenschaften notwendigerweise ungeordnet und unvorhersehbar sind?

Entwickler mit früher Erfahrung mit JavaScript antworten möglicherweise, dass Object.keys() oder for...in eine unvorhersehbare Reihenfolge von Objekteigenschaften zurückgibt. Aber ist das immer noch so?

Wie Sie vielleicht erwarten, gibt es jetzt Regeln, die befolgt werden müssen.

Ab ECMAScript 2020 folgen Object.keys, for...in, Object.getOwnPropertyNames und Reflect.ownKeys alle derselben Spezifikationsreihenfolge. Sie sind:

1. Eigene Eigenschaften sind Array-Indizes in aufsteigender numerischer Indexreihenfolge

The Secrets of JavaScript Object Property Order

Ein Array-Index ist ein Eigenschaftsschlüssel mit String-Wert, der ein kanonischer numerischer String ist. Und ein kanonischer numerischer String ist eine String-Darstellung einer Zahl, die von ToString erzeugt würde, oder der Zeichenfolge „-0“. So ist beispielsweise „012“ keine kanonische numerische Zeichenfolge, „12“ hingegen schon.

2. Andere eigene String-Eigenschaften, in aufsteigender chronologischer Reihenfolge der Eigenschaftserstellung

The Secrets of JavaScript Object Property Order

Der obige Code fügt den Wissenspunkt der Ereignisschleife hinzu. Da es sich bei setTimeout um eine asynchrone Makroaufgabe handelt, wurde die c-Eigenschaft bei der Ausgabe von console.log nicht zu obj hinzugefügt.

3. Eigene Symboleigenschaften, in aufsteigender chronologischer Reihenfolge der Eigenschaftserstellung

The Secrets of JavaScript Object Property Order

Die Symbol-Eigenschaft ist mit der String-Eigenschaft identisch, in aufsteigender chronologischer Reihenfolge der Eigenschaftserstellung. Aber die Methoden Object.keys, for...in, Object.getOwnPropertyNames können die Symboleigenschaften des Objekts nicht abrufen, Reflect.ownKeys und Object.getOwnPropertySymbols schon.

Abschluss

Wenn die Eigenschaftsschlüssel eines Objekts eine Kombination der oben genannten Typen sind, werden die nicht negativen Ganzzahlschlüssel des Objekts (aufzählbar und nicht aufzählbar) zuerst in aufsteigender Reihenfolge zum Array hinzugefügt, dann werden Zeichenfolgenschlüssel in Einfügungsreihenfolge hinzugefügt. Schließlich werden Symbolschlüssel in der Einfügereihenfolge hinzugefügt.

The Secrets of JavaScript Object Property Order

Aber wenn Sie stark von der Einfügungsreihenfolge abhängig sind, dann garantiert Ihnen Map dies.

Wenn Sie dies hilfreich fanden, denken Sie bitte darüber nach, meinen Newsletter zu abonnieren für weitere nützliche Artikel und Tools zur Webentwicklung. Danke fürs Lesen!

Freigabeerklärung Dieser Artikel wird unter: https://dev.to/zacharylee/the-tecrets-ovascript-object-property-order-4oh4?1 reproduziert, wenn es zu Verstößen besteht. Bitte wenden Sie sich an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3