Kapitel 30. Bibliotheken
Inhaltsverzeichnis
Das Buch kaufen
(Werbung, bitte nicht blockieren.)

Kapitel 30. Bibliotheken

Dieses Kapitel behandelt JavaScript-Bibliotheken. Es erklärt zuerst, was Shims und Polyfills sind, zwei spezielle Arten von Bibliotheken. Dann listet es einige Kernbibliotheken auf. Zuletzt verweist es auf zusätzliche ressourcenbezogene Bibliotheken.

Shims versus Polyfills

Shims und Polyfills sind Bibliotheken, die neuere Funktionalitäten auf älteren JavaScript-Engines nachrüsten:

Beispiele sind

  • „HTML5 Cross Browser Polyfills“: Eine Liste, zusammengestellt von Paul Irish.
  • es5-shim ist ein (kein Polyfill) Shim, der ECMAScript 5 Funktionen auf ECMAScript 3 Engines nachrüstet. Er ist rein sprachbezogen und macht auf Node.js genauso viel Sinn wie auf Browsern.

Vier Sprachbibliotheken

Die folgenden Bibliotheken sind ziemlich etabliert und nah an der Sprache. Es ist nützlich, sich ihrer bewusst zu sein:

Die ECMAScript Internationalization API

Die ECMAScript Internationalization API ist eine standardmäßige JavaScript-API, die bei Aufgaben im Zusammenhang mit der Internationalisierung hilft: Sortieren (Sortieren und Suchen von Zeichenketten), Formatieren von Zahlen und Formatieren von Datum und Uhrzeit. Dieser Abschnitt gibt einen kurzen Überblick und verweist Sie auf weiteres Lesematerial.

Die ECMAScript Internationalization API, Edition 1

Die erste Edition der API bietet folgende Dienste

  • Sortierung unterstützt zwei Szenarien: Sortieren einer Menge von Zeichenketten und Suchen innerhalb einer Menge von Zeichenketten. Die Sortierung ist durch die Locale parametrisiert und Unicode-bewusst.
  • Zahlenformatierung. Zu den Parametern gehören

    • Formatierungsstil: Dezimal, Währung (welche und wie sie referenziert wird, wird durch andere Parameter bestimmt), Prozent
    • Locale (direkt angegeben oder best-fit, gesucht über ein Matcher-Objekt)
    • Nummerierungssystem (westliche Ziffern, arabische Ziffern, thailändische Ziffern usw.)
    • Genauigkeit: Anzahl der Ganzzahlziffern, Nachkommaziffern, signifikante Ziffern
    • Gruppierungszeichen auf oder aus
  • Datums- und Uhrzeitformatierung. Zu den Parametern gehören

    • Welche Informationen formatiert werden sollen und in welchem Stil (kurz, lang, numerisch usw.)
    • Eine Locale
    • Eine Zeitzone

Die meisten Funktionalitäten werden über ein Objekt in der globalen Variable Intl aufgerufen, aber die API erweitert auch die folgenden Methoden

  • String.prototype.localeCompare
  • Number.prototype.toLocaleString
  • Date.prototype.toLocaleString
  • Date.prototype.toLocaleDateString
  • Date.prototype.toLocaleTimeString

Welche Art von Standard ist es?

Die Nummer des Standards „ECMAScript Internationalization API“ (EIA) ist ECMA-402. Er wird von Ecma International gehostet, der Vereinigung, die auch EMCA-262, die ECMAScript-Sprachspezifikation, hostet. Beide Standards werden von TC39 gepflegt. Daher ist EIA so nah an der Sprache, wie man es sein kann, ohne Teil von ECMA-262 zu sein. Die API wurde so konzipiert, dass sie sowohl mit ECMAScript 5 als auch mit ECMAScript 6 funktioniert. Eine Reihe von Konformitätstests ergänzt den Standard und stellt sicher, dass die verschiedenen Implementierungen der API kompatibel sind (ECMA-262 hat eine ähnliche Testsuite).

Wann kann ich es verwenden?

Die meisten modernen Browser unterstützen es bereits oder sind dabei, es zu unterstützen. David Storey hat eine detaillierte Kompatibilitätstabelle erstellt (die angibt, welche Browser welche Locales und mehr unterstützen).

Weiterführende Lektüre

Die Spezifikation der ECMAScript Internationalization API wird von Norbert Lindenberg herausgegeben. Sie ist in den Formaten PDF, HTML und EPUB erhältlich. Zusätzlich gibt es mehrere umfassende Einführungsartikel

Verzeichnisse für JavaScript-Ressourcen

Dieser Abschnitt beschreibt Seiten, die Informationen über JavaScript-Ressourcen sammeln. Es gibt verschiedene Arten solcher Verzeichnisse.

Hier ist eine Liste von allgemeinen Verzeichnissen für JavaScript

Spezialisierte Verzeichnisse umfassen

Offensichtlich können Sie immer direkt die Registrierungen von Paketmanagern durchsuchen

Verzeichnisse für CDNs (Content Delivery Networks) und CDN-Inhalte umfassen

Danksagungen

Folgende Personen haben zu diesem Abschnitt beigetragen: Kyle Simpson (@getify), Gildas Lormeau (@check_ca), Fredrik Sogaard (@fredrik_sogaard), Gene Loparco (@gloparco), Manuel Strehl (@m_strehl) und Elijah Manor (@elijahmanor).

Weiter: 31. Modulsysteme und Paketmanager