String.fromCodePoint()

Tento překlad není kompletní. Prosím pomozte přeložit tento článek z angličtiny.

Statická metoda String.fromCodePoint() vrací hodnotu datového typu string vytvořenou použítím dané sekvence kodových bodů.

Syntaxe

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

Parametry

num1, ..., numN
Sekvence kódových bodů.

Vracená hodnota

Textový řetězec vytvořen použitím dané sekvence kódových bodů.

Vyjímky

  • RangeError je vrácen pokud je použit nesprávný kódový bod Unicode (např. "RangeError: NaN není validní kódový bod").

Popis

Protože fromCodePoint() je statická metoda String, vždy ji používejte raději jako String.fromCodePoint(), než jako metodu objektu String, který jste vytvořili.

Příklady

Použití 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
// String.fromCharCode() samotná nemůže získat znak v tak vysokém kódovém označení.
// Nadruhou stranu může vrátit 4-byte znak jakož i běžné
// 2-byte znaky (tj., může vrátit jeden znak, který má
// ve skutečnosti délku 2 místo 1!)
console.log(String.fromCodePoint(0x2F804)); // nebo 194564 v desítkové soustavě

Zpětná podpora

Metoda String.fromCodePoint byla přidáná do ECMAScript standardu ve verzi 6 a nemusí být ještě podporována ve všech webových prohlížečích nebo prostředích. Použíjte kód níže pro zpětnou podporu:

/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
if (!String.fromCodePoint) {
  (function() {
    var defineProperty = (function() {
      // IE 8 only supports `Object.defineProperty` on DOM elements
      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`, or `-Infinity`
          codePoint < 0 ||              // not a valid Unicode code point
          codePoint > 0x10FFFF ||       // not a valid Unicode code point
          floor(codePoint) != codePoint // not an integer
        ) {
          throw RangeError('Invalid code point: ' + codePoint);
        }
        if (codePoint <= 0xFFFF) { // BMP code point
          codeUnits.push(codePoint);
        } else { // Astral code point; split in surrogate halves
          // 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;
    }
  }());
}

Specifikace

Specifikace Status Komentář
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.fromCodePoint' in that specification.
Standard Počáteční definice.
ECMAScript 2017 Draft (ECMA-262)
The definition of 'String.fromCodePoint' in that specification.
Draft  

Kompatibilita v prohlížečích

Vlastnost Chrome Firefox (Gecko) Internet Explorer Opera Safari
Základní podpora

41

29 (29) No support 28 No support
Vlastnost Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Základní podpora No support No support 29.0 (29) No support No support No support

Viz také

Štítky a přispěvatelé do dokumentace

 Přispěvatelé této stránky: PeterBielak
 Poslední aktualizace od: PeterBielak,