--- title: String.fromCharCode() slug: Web/JavaScript/Reference/Global_Objects/String/fromCharCode tags: - JavaScript - Method - String - Unicode - Довідка translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCharCode ---
Статичний метод String.fromCharCode()
повертає рядок, створений з послідовності кодових одиниць Unicode переданих цілими числами.
String.fromCharCode(num1[, ...[, numN]])
num1, ..., numN
Рядок із символів, що відповідають переданій послідовності значень (кодових одиниць) Unicode.
Цей метод вертає власне рядок, що належить до {{glossary("Primitive", "простого типу даних")}}, а не об'єкт класу {{jsxref("String")}}
.
Позаяк fromCharCode()
є статичним методом класу {{jsxref("String")}}
, він зазвичай використовується як String.fromCharCode()
, а не як метод створеного об'єкта класу.
fromCharCode()
Наведений вираз повертає рядок "Віко":
// вертає "Віко" String.fromCharCode(0x412, 0x456, 0x43A, 0x43E);
Попри свою назву, метод фактично приймає не коди символів, а саме кодові одиниці. Тобто символи, коди яких перевищують значення 0xFFFF (діапазон UCS-2), доведеться передавати двома кодовими одиницями:
Наприклад, символ з кодом U+1F341 «MAPLE LEAF» доведеться подавати як послідовність кодових одиниць 0xD83C та 0xDF41:
// виводить символ U+1F341 «MAPLE LEAF» console.log(String.fromCharCode(0xD83C, 0xDF41));
Більшість символів Unicode можна передати значеннями одного 16-розрядного числа (як передбачалося на початку стандартизації JavaScript), тож fromCharCode()
можна застосовувати для створення рядків із найпоширенішими символами (UCS-2 є підмножиною UTF-8, що містить найбільш вживані символи), проте для потреб передачі всіх можливих символів (кодуються 21 двійковим розрядом) лише методу fromCharCode()
недостатньо. Позаяк символи з кодами вищими за 0xFFFF подаються так званими «сурогатними парами» (двома окремими кодовими одиницями), можна використати {{jsxref("String.fromCodePoint()")}}
(є частиною стандарту ES2015), що належним чином перетворить вищі коди символів на такі пари:
// виводить true console.log(String.fromCharCode(0xD83C, 0xDF41) === String.fromCodePoint(0x1F341));
Специфікація | Статус | Коментар |
---|---|---|
{{SpecName('ES1')}} | {{Spec2('ES1')}} | Первинне визначення. Реалізовано у JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.5.3.2', 'StringfromCharCode')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-string.fromcharcodes', 'String.fromCharCode')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-string.fromcharcodes', 'String.fromCharCode')}} | {{Spec2('ESDraft')}} |
Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію https://github.com/mdn/browser-compat-data.
{{Compat("javascript.builtins.String.fromCharCode")}}