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"
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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