Zum Hauptinhalt springen

39 Posts getaggt mit "ECMAScript"

Alle Tags anzeigen

Statische Initialisierungsblöcke von Klassen

· 2 Minuten Lesezeit
Shu-yu Guo ([@_shu](https://twitter.com/_shu))

Die neue Syntax der statischen Initialisierungsblöcke ermöglicht es Entwicklern, Code zu bündeln, der einmal für eine bestimmte Klassendefinition ausgeführt werden soll, und ihn an einem einzigen Ort zu platzieren. Betrachten Sie das folgende Beispiel, bei dem ein Pseudo-Zufallszahlengenerator einen statischen Block verwendet, um einmalig einen Entropie-Pool zu initialisieren, wenn die class MyPRNG-Definition ausgewertet wird.

`Atomics.wait`, `Atomics.notify`, `Atomics.waitAsync`

· 8 Minuten Lesezeit
[Marja Hölttä](https://twitter.com/marjakh), eine nicht blockierende Bloggerin

Atomics.wait und Atomics.notify sind Low-Level-Synchronisationsprimitiven, die nützlich für die Implementierung von Mutexen und anderen Synchronisationsmethoden sind. Da Atomics.wait blockierend ist, ist es jedoch nicht möglich, es im Haupt-Thread aufzurufen (ein solcher Versuch löst einen TypeError aus).

RegExp-Match-Indizes

· 5 Minuten Lesezeit
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), regelmäßig neue Features ausdrückend

JavaScript ist nun mit einer neuen Verbesserung für reguläre Ausdrücke ausgestattet, genannt „Match-Indizes“. Stellen Sie sich vor, Sie möchten ungültige Variablennamen in JavaScript-Code finden, die mit reservierten Wörtern übereinstimmen, und ein Caret sowie eine „Unterstreichung“ unter dem Variablennamen anzeigen, wie:

`String.prototype.replaceAll`

· 4 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Wenn Sie jemals mit Zeichenfolgen in JavaScript gearbeitet haben, sind Sie wahrscheinlich auf die Methode String#replace gestoßen. String.prototype.replace(searchValue, replacement) gibt eine Zeichenfolge zurück, bei der einige Übereinstimmungen basierend auf den angegebenen Parametern ersetzt werden:

Top-level `await`

· 5 Minuten Lesezeit
Myles Borins ([@MylesBorins](https://twitter.com/MylesBorins))

Top-level await ermöglicht Entwicklern, das await-Schlüsselwort außerhalb von asynchronen Funktionen zu verwenden. Es verhält sich wie eine große asynchrone Funktion, wodurch andere Module, die sie importieren, darauf warten, bevor sie beginnen, ihren Körper zu evaluieren.

Nullish Coalescing

· 7 Minuten Lesezeit
Justin Ridgewell

Der Nullish-Coalescing-Vorschlag (??) fügt einen neuen Kurzschlussoperator hinzu, der für die Verarbeitung von Standardwerten gedacht ist.

Sie kennen möglicherweise bereits die anderen Kurzschlussoperatoren && und ||. Beide Operatoren arbeiten mit „truthy“ und „falsy“ Werten. Stellen Sie sich das Codebeispiel lhs && rhs vor. Wenn lhs () linke Seite) nicht wahrheitsgemäß ist, wird der Ausdruck zu lhs. Andernfalls wird er zu rhs () rechte Seite) ausgewertet. Das Gegenteil gilt für das Codebeispiel lhs || rhs. Wenn lhs wahrheitsgemäß ist, wird der Ausdruck zu lhs ausgewertet. Andernfalls wird er zu rhs ausgewertet.

Optionale Verkettung

· 5 Minuten Lesezeit
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), Brecherin optionaler Verkettungen

Lange Reihen von Eigenschaftszugriffen in JavaScript können fehleranfällig sein, da jeder von ihnen den Wert null oder undefined (auch als „nullish“-Werte bekannt) ergeben könnte. Das Überprüfen der Existenz von Eigenschaften auf jedem Schritt verwandelt sich leicht in eine tief verschachtelte Struktur von if-Anweisungen oder eine lange if-Bedingung, die die Eigenschaftszugriffsreihe repliziert:

`globalThis`

· 2 Minuten Lesezeit
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Wenn Sie schon einmal JavaScript für die Verwendung in einem Webbrowser geschrieben haben, haben Sie möglicherweise window verwendet, um auf das globale this zuzugreifen. In Node.js haben Sie möglicherweise global verwendet. Wenn Sie Code geschrieben haben, der in beiden Umgebungen funktionieren muss, haben Sie möglicherweise festgestellt, welche von diesen verfügbar ist, und diese dann verwendet – aber die Liste der zu überprüfenden Bezeichner wächst mit der Anzahl der Umgebungen und Anwendungsfälle, die Sie unterstützen möchten. Das gerät schnell außer Kontrolle: