String.fromCodePoint()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.
Die statische Methode String.fromCodePoint() gibt einen String zurück, der aus der angegebenen Folge von Codepunkten erstellt wird.
Probieren Sie es aus
console.log(String.fromCodePoint(9731, 9733, 9842, 0x2f804));
// Expected output: "☃★♲你"
Syntax
String.fromCodePoint()
String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* …, */ numN)
Parameter
num1, …,numN-
Eine Ganzzahl zwischen
0und0x10FFFF(einschließlich), die einen Unicode-Codepunkt darstellt.
Rückgabewert
Ein String, der aus der angegebenen Folge von Codepunkten erstellt wird.
Ausnahmen
RangeError-
Wird ausgelöst, wenn
numNnach der Umwandlung in eine Zahl keine Ganzzahl ist, kleiner als0oder größer als0x10FFFFist.
Beschreibung
Da fromCodePoint() eine statische Methode von String ist, verwenden Sie sie immer als String.fromCodePoint() und nicht als Methode eines von Ihnen erstellten String-Werts.
Unicode-Codepunkte reichen von 0 bis 1114111 (0x10FFFF). In UTF-16 entspricht jeder String-Index einer Codeeinheit mit einem Wert von 0 bis 65535. Höhere Codepunkte werden durch ein Paar von 16-Bit-Surrogat-Pseudozeichen dargestellt. Daher kann fromCodePoint() einen String zurückgeben, dessen length (in UTF-16-Codeeinheiten) größer ist als die Anzahl der übergebenen Argumente. Weitere Informationen zu Unicode finden Sie unter UTF-16-Zeichen, Unicode-Codepunkte und Graphemcluster.
Beispiele
>Verwendung von fromCodePoint()
Gültige Eingabe:
String.fromCodePoint(42); // "*"
String.fromCodePoint(65, 90); // "AZ"
String.fromCodePoint(0x404); // "\u0404" === "Є"
String.fromCodePoint(0x2f804); // "\uD87E\uDC04"
String.fromCodePoint(194564); // "\uD87E\uDC04"
String.fromCodePoint(0x1d306, 0x61, 0x1d307); // "\uD834\uDF06a\uD834\uDF07"
Ungültige Eingabe:
String.fromCodePoint("_"); // RangeError
String.fromCodePoint(Infinity); // RangeError
String.fromCodePoint(-1); // RangeError
String.fromCodePoint(3.14); // RangeError
String.fromCodePoint(3e-2); // RangeError
String.fromCodePoint(NaN); // RangeError
Vergleich mit fromCharCode()
String.fromCharCode() kann ergänzende Zeichen (d.h. Codepunkte von 0x010000 bis 0x10FFFF) nicht zurückgeben, wenn ihr Codepunkt angegeben wird. Stattdessen muss das UTF-16-Surrogatpaar angegeben werden, um ein ergänzendes Zeichen zurückzugeben:
String.fromCharCode(0xd83c, 0xdf03); // Code Point U+1F303 "Night with
String.fromCharCode(55356, 57091); // Stars" === "\uD83C\uDF03"
String.fromCodePoint() hingegen kann sowohl ergänzende 4-Byte-Zeichen als auch die gebräuchlicheren 2-Byte-BMP-Zeichen zurückgeben, indem ihr Codepunkt angegeben wird (der der UTF-32-Codeeinheit entspricht):
String.fromCodePoint(0x1f303); // or 127747 in decimal
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.fromcodepoint> |