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 кожен індекс рядка є кодовою одиницею зі значенням 065535. Вищі кодові точки представлені парою 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
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
fromCodePoint
Chrome Full support 41
Edge Full support 12
Firefox Full support 29
Internet Explorer No support No
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

Дивіться також