Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Стандартные встроенные объекты
  5. String
  6. String.fromCodePoint()

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

String.fromCodePoint()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨сентябрь 2015 г.⁩.

Сводка

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

Синтаксис

String.fromCodePoint(num1[, ...[, numN]])

Параметры

num1, ..., numN

Последовательность кодовых точек.

Выбрасываемые исключения

RangeError

ИсключениеRangeError выбрасывается в случае, если методу предоставлена неверная кодовая точка Юникода (например, "RangeError: NaN is not a valid code point").

Описание

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

Примеры

Пример: использование методаfromCodePoint()

js
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("_"); // RangeErrorString.fromCodePoint(Infinity); // RangeErrorString.fromCodePoint(-1); // RangeErrorString.fromCodePoint(3.14); // RangeErrorString.fromCodePoint(3e-2); // RangeErrorString.fromCodePoint(NaN); // RangeError
js
// Метод String.fromCharCode() не может вернуть символ по такой большой кодовой точке// Следующий же метод может вернуть 4-байтный символ так же, как и обычный// 2-байтный (то есть, он может вернуть один символ, который на самом деле// имеет длину 2, а не 1!)console.log(String.fromCodePoint(0x2f804)); // или 194564 в десятичной записи

Полифил

МетодString.fromCodePoint() был добавлен к стандарту ECMAScript в 6-й версии и может поддерживаться ещё не во всех браузерах или окружениях. Используйте код ниже в качестве полифила:

js
/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */if (!String.fromCodePoint) {  (function () {    var defineProperty = (function () {      // IE 8 поддерживает метод `Object.defineProperty` только на элементах DOM      try {        var object = {};        var $defineProperty = Object.defineProperty;        var result = $defineProperty(object, object, object) && $defineProperty;      } catch (error) {}      return result;    })();    var stringFromCharCode = String.fromCharCode;    var floor = Math.floor;    var fromCodePoint = function () {      var MAX_SIZE = 0x4000;      var codeUnits = [];      var highSurrogate;      var lowSurrogate;      var index = -1;      var length = arguments.length;      if (!length) {        return "";      }      var result = "";      while (++index < length) {        var codePoint = Number(arguments[index]);        if (          !isFinite(codePoint) || // `NaN`, `+Infinity` или `-Infinity`          codePoint < 0 || // неверная кодовая точка Юникода          codePoint > 0x10ffff || // неверная кодовая точка Юникода          floor(codePoint) != codePoint // не целое число        ) {          throw RangeError("Invalid code point: " + codePoint);        }        if (codePoint <= 0xffff) {          // кодовая точка Базовой многоязыковой плоскости (БМП)          codeUnits.push(codePoint);        } else {          // Астральная кодовая точка; делим её на суррогатную пару          // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae          codePoint -= 0x10000;          highSurrogate = (codePoint >> 10) + 0xd800;          lowSurrogate = (codePoint % 0x400) + 0xdc00;          codeUnits.push(highSurrogate, lowSurrogate);        }        if (index + 1 == length || codeUnits.length > MAX_SIZE) {          result += stringFromCharCode.apply(null, codeUnits);          codeUnits.length = 0;        }      }      return result;    };    if (defineProperty) {      defineProperty(String, "fromCodePoint", {        value: fromCodePoint,        configurable: true,        writable: true,      });    } else {      String.fromCodePoint = fromCodePoint;    }  })();}

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

Specification
ECMAScript® 2026 Language Specification
# sec-string.fromcodepoint

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

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

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp