Heim > Web-Frontend > js-Tutorial > Die Geheimnisse der Reihenfolge der JavaScript-Objekteigenschaften

Die Geheimnisse der Reihenfolge der JavaScript-Objekteigenschaften

Barbara Streisand
Freigeben: 2024-10-14 13:31:03
Original
692 Leute haben es durchsucht

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 eine 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 können dies.

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 auf die Einfügungsreihenfolge angewiesen sind, dann garantiert Ihnen Map dies.

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

Das obige ist der detaillierte Inhalt vonDie Geheimnisse der Reihenfolge der JavaScript-Objekteigenschaften. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage