Spec-Zone.ru › JavaScript

String.fromCharCode()

Исходный уровень Широко доступно

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

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

Попробуйте

console.log(String.fromCharCode(189, 43, 190, 61));
// Expected output: "½+¾="

Синтаксис

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

Параметры

num1, …, numN
Число от 0 до 65535 (0xFFFF), представляющее кодовую единицу UTF-16. Числа, превышающие 0xFFFF, усекаются до последних 16 бит. Проверки допустимости не выполняются.

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

Строка длиной N, состоящая из N указанных кодовых единиц UTF-16.

Описание

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

Кодовые точки Unicode варьируются от 0 до 1114111 (0x10FFFF). charCodeAt() всегда возвращает значение, меньшее, чем 65536, поскольку более высокие кодовые точки представлены парой 16-битных суррогатных псевдосимволов. Следовательно, чтобы создать полный символ со значением, превышающим 65535, необходимо предоставить две кодовые единицы (как если бы манипулировать строкой с двумя символами). Для получения информации о Unicode см. Символы UTF-16, кодовые точки Unicode и кластеры графем.

Поскольку fromCharCode() работает только с 16-битными значениями (так же, как escape-последовательность \u), для возврата дополнительного символа требуется суррогатная пара. Например, как String.fromCharCode(0xd83c, 0xdf03), так и "\ud83c\udf03" возвращают кодовую точку U+1F303 «Night with Stars» (Ночь со звездами). Хотя существует математическая связь между значением дополнительной кодовой точки (например, 0x1f303) и обоими суррогатными значениями, которые ее представляют (например, 0xd83c и 0xdf03), для вычисления или поиска значений суррогатной пары при каждом использовании дополнительной кодовой точки требуется дополнительный шаг. По этой причине удобнее использовать String.fromCodePoint(), который позволяет возвращать дополнительные символы на основе их фактического значения кодовой точки. Например, String.fromCodePoint(0x1f303) возвращает кодовую точку U+1F303 «Night with Stars» (Ночь со звездами).

Примеры

Использование fromCharCode()

Символы BMP в UTF-16 используют одну кодовую единицу:

String.fromCharCode(65, 66, 67); // returns "ABC"
String.fromCharCode(0x2014); // returns "—"
String.fromCharCode(0x12014); // also returns "—"; the digit 1 is truncated and ignored
String.fromCharCode(8212); // also returns "—"; 8212 is the decimal form of 0x2014

Дополнительные символы в UTF-16 требуют две кодовые единицы (т. е. суррогатную пару):

String.fromCharCode(0xd83c, 0xdf03); // Code Point U+1F303 "Night with
String.fromCharCode(55356, 57091); // Stars" === "\uD83C\uDF03"

String.fromCharCode(0xd834, 0xdf06, 0x61, 0xd834, 0xdf07); // "\uD834\uDF06a\uD834\uDF07"

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-string.fromcharcode

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

Десктопные Мобильные Серверные
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
fromCharCode
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • String.fromCodePoint()
  • String.prototype.charAt()
  • String.prototype.charCodeAt()
  • String.prototype.codePointAt()

© 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/fromCharCode

Spec-Zone.ru

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