String.fromCodePoint()
Статичний метод String.fromCodePoint()
(із кодової точки) повертає рядок, створений зі вказаного набору кодів.
Спробуйте його в дії
Синтаксис
String.fromCodePoint()
String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* …, */ numN)
Параметри
num1
, …,numN
Ціле число між
0
і0x10FFFF
(включно), що відповідає кодовій точці Unicode.
Повернене значення
Рядок, створений зі вказаної послідовності кодів.
Винятки
RangeError
Викидається, коли
numN
не є цілим числом, або коли після перетворення на число є меншим за0
або більшим за0x10FFFF
.
Опис
Оскільки fromCodePoint()
є статичним методом String
, він завжди використовується як String.fromCodePoint()
, а не як метод власного значення String
.
Кодові точки Unicode мають діапазон від 0
до 1114111
(0x10FFFF
). В UTF-16 кожен індекс рядка є кодовою одиницею зі значенням 0
– 65535
. Вищі кодові точки представлені парою 16-бітних псевдосимволів-сурогатів. Тому fromCodePoint()
може повертати рядок, довжина якого (у кодових одиницях UTF-16) більша за кількість переданих аргументів. Для отримання інформації про Unicode дивіться Символи UTF-16, кодові точки Unicode та графемні кластери.
Приклади
Застосування fromCodePoint()
Передача дійсних значень у метод:
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"
Передача недійсних значень:
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
Порівняння зі fromCharCode()
Метод String.fromCharCode()
не здатний повертати додаткові символи (наприклад, коди в діапазоні від 0x010000
і до 0x10FFFF
) шляхом передачі у функцію їхніх кодів.
Натомість щоб повернути символ з допоміжної площини, він вимагає передачі сурогатної пари UTF-16 в метод:
String.fromCharCode(0xd83c, 0xdf03); // Code Point U+1F303 "Зоряна
String.fromCharCode(55356, 57091); // Ніч" === "\uD83C\uDF03"
З іншого боку, String.fromCodePoint()
може повертати 4-байтові допоміжні символи, так само як і більш звичні 2-байтові BMP-символи, шляхом вказування їхнього коду (що еквівалентно кодовій одиниці UTF-32):
String.fromCodePoint(0x1f303); // або 127747 в десятковій системі числення
Специфікації
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fromCodePoint
|
Chrome Full support 41 | Edge Full support 12 | Firefox Full support 29 | Internet Explorer No support Ні | Opera Full support 28 | Safari Full support 10 | WebView Android Full support 41 | Chrome Android Full support 41 | Firefox for Android Full support 29 | Opera Android Full support 28 | Safari on iOS Full support 10 | Samsung Internet Full support 4.0 | Deno Full support 1.0 | Node.js Full support 4.0.0 |