Baseline Widely available
СводкаСÑаÑиÑеÑкий меÑод String.fromCodePoint()
возвÑаÑÐ°ÐµÑ ÑÑÑокÑ, ÑозданнÑÑ Ð¸Ð· Ñказанной поÑледоваÑелÑноÑÑи кодовÑÑ
ÑоÑек.
String.fromCodePoint(num1[, ...[, numN]])ÐаÑамеÑÑÑ
num1, ..., numN
ÐоÑледоваÑелÑноÑÑÑ ÐºÐ¾Ð´Ð¾Ð²ÑÑ ÑоÑек.
RangeError
ÐÑклÑÑение RangeError
вÑбÑаÑÑваеÑÑÑ Ð² ÑлÑÑае, еÑли меÑÐ¾Ð´Ñ Ð¿ÑедоÑÑавлена невеÑÐ½Ð°Ñ ÐºÐ¾Ð´Ð¾Ð²Ð°Ñ ÑоÑка Юникода (напÑимеÑ, "RangeError: NaN is not a valid code point").
ÐоÑколÑÐºÑ Ð¼ÐµÑод fromCodePoint()
ÑвлÑеÑÑÑ ÑÑаÑиÑеÑким меÑодом обÑекÑа String
, Ð²Ñ Ð²Ñегда Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ ÐµÐ³Ð¾ как String.fromCodePoint()
, а не как меÑод Ñозданного вами ÑкземплÑÑа String
.
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() не Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ Ñимвол по Ñакой болÑÑой кодовой ÑоÑке
// СледÑÑÑий же меÑод Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ 4-байÑнÑй Ñимвол Ñак же, как и обÑÑнÑй
// 2-байÑнÑй (Ñо еÑÑÑ, он Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑнÑÑÑ Ð¾Ð´Ð¸Ð½ Ñимвол, коÑоÑÑй на Ñамом деле
// Ð¸Ð¼ÐµÐµÑ Ð´Ð»Ð¸Ð½Ñ 2, а не 1!)
console.log(String.fromCodePoint(0x2f804)); // или 194564 в деÑÑÑиÑной запиÑи
ÐолиÑил
ÐеÑод String.fromCodePoint()
бÑл добавлен к ÑÑандаÑÑÑ ECMAScript в 6-й веÑÑии и Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑÑÑ ÐµÑÑ Ð½Ðµ во вÑеÑ
бÑаÑзеÑаÑ
или окÑÑжениÑÑ
. ÐÑполÑзÑйÑе код ниже в каÑеÑÑве полиÑила:
/*! 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;
}
})();
}
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4