26. Unicode in ES6
Inhaltsverzeichnis
Bitte unterstützen Sie dieses Buch: kaufen Sie es (PDF, EPUB, MOBI) oder spenden Sie
(Werbung, bitte nicht blockieren.)

26. Unicode in ES6

Dieses Kapitel erklärt die verbesserte Unterstützung für Unicode, die ECMAScript 6 mit sich bringt. Für eine allgemeine Einführung in Unicode lesen Sie Kap. „Unicode und JavaScript“ in „Speaking JavaScript“.



26.1 Unicode wird in ES6 besser unterstützt

Es gibt drei Bereiche, in denen ECMAScript 6 die Unterstützung für Unicode verbessert hat

Zusätzlich basiert ES6 auf der Unicode-Version 5.1.0, während ES5 auf der Unicode-Version 3.0 basiert.

26.2 Escape-Sequenzen in ES6

Es gibt drei parametrisierte Escape-Sequenzen zur Darstellung von Zeichen in JavaScript

Unicode-Code-Punkt-Escapes sind neu in ES6. Sie ermöglichen die Angabe von Code-Punkten über 16 Bit hinaus. Wenn Sie das in ECMAScript 5 tun wollten, mussten Sie jeden Code-Punkt als zwei UTF-16-Code-Einheiten (ein Ersatzpaar) kodieren. Diese Code-Einheiten konnten über Unicode-Escapes ausgedrückt werden. Zum Beispiel gibt die folgende Anweisung eine Rakete (Code-Punkt 0x1F680) auf den meisten Konsolen aus

console.log('\uD83D\uDE80');

Mit einem Unicode-Code-Punkt-Escape können Sie Code-Punkte größer als 16 Bit direkt angeben

console.log('\u{1F680}');

26.2.1 Wo können Escape-Sequenzen verwendet werden?

Die Escape-Sequenzen können an den folgenden Stellen verwendet werden

  \uHHHH \u{···} \xHH
Bezeichner  
Zeichenketten-Literale
Template-Literale
Reguläre Ausdrucks-Literale Nur mit dem Flag /u

Bezeichner

> const hello = 123;
> hell\u{6F}
123

Zeichenketten-Literale

Template-Literale

> `hell\u{6F}` // cooked
'hello'
> String.raw`hell\u{6F}` // raw
'hell\\u{6F}'

Reguläre Ausdrücke

26.2.2 Escape-Sequenzen in der ES6-Spezifikation

Verschiedene Informationen

26.2.2.1 Reguläre Ausdrücke

Die Spezifikation unterscheidet zwischen BMP-Mustern (Flag /u nicht gesetzt) und Unicode-Mustern (Flag /u gesetzt). Abschn. „Pattern Semantics“ erklärt, dass sie unterschiedlich behandelt werden und wie.

Zur Erinnerung, hier ist, wie Grammatikregeln in der Spezifikation parametrisiert werden

Diese Parametrisierung kann man in Abschn. „Patterns“ beobachten, wo der Index [U] separate Grammatiken für BMP-Muster und Unicode-Muster erstellt

Abschn. „CharacterEscape“ erklärt, wie verschiedene Escape-Sequenzen in Zeichen übersetzt werden (ungefähr: entweder Code-Einheiten oder Code-Punkte).

Weiter: 27. Tail Call Optimization