Spec-Zone.ru › JavaScript

String.fromCodePoint()

Базовый Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2015 года.

Статический метод String.fromCodePoint() возвращает строку, созданную из указанной последовательности кодовых точек.

Попробовать

console.log(String.fromCodePoint(9731, 9733, 9842, 0x2f804));
// Expected output: "☃★♲你"

Синтаксис

String.fromCodePoint()
String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* …, */ numN)

Параметры

num1, …, numN
Целое число от 0 до 0x10FFFF (включительно), представляющее кодовую точку Юникода.

Возвращаемое значение

Строка, созданная с использованием указанной последовательности кодовых точек.

Исключения

RangeError
Вызывается, если numN не является целым числом, меньше 0, или больше 0x10FFFF после преобразования в число.

Описание

Поскольку fromCodePoint() является статическим методом String, вы всегда используете его как String.fromCodePoint(), а не как метод созданного вами значения String.

Кодовые точки Юникода находятся в диапазоне от 0 до 1114111 (0x10FFFF). В UTF-16 каждый индекс строки является единицей кода со значением 0 – 65535. Более высокие кодовые точки представлены парой 16-битных суррогатных псевдосимволов. Следовательно, fromCodePoint() может вернуть строку, чья length (в единицах кода UTF-16) больше, чем количество переданных аргументов. Для получения информации о Юникоде, смотрите Символы UTF-16, кодовые точки Юникода и кластеры графем.

Примеры

Использование 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 "Night with
String.fromCharCode(55356, 57091); // Stars" === "\uD83C\uDF03"

String.fromCodePoint(), с другой стороны, может возвращать 4-байтовые дополнительные символы, а также более распространенные 2-байтовые символы BMP, путем указания их кодовой точки (что эквивалентно единице кода UTF-32):

String.fromCodePoint(0x1f303); // or 127747 in decimal

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-string.fromcodepoint

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
fromCodePoint
41
12
29
28
9
41
29
28
9
4.0
41
9
1.0.0
1.0
4.0.0

Смотрите также

  • Полифил String.fromCodePoint в core-js
  • Полифил es-shims String.fromCodePoint
  • String.fromCharCode()
  • String.prototype.charAt()
  • String.prototype.codePointAt()
  • String.prototype.charCodeAt()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API