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 September 2015.

String.fromCodePoint() 정적 메서드는 명시된 코드 포인트의 시퀀스로부터 생성된 문자열을 반환합니다.

시도해보기

구문

js
String.fromCodePoint()
String.fromCodePoint(num1)
String.fromCodePoint(num1, num2)
String.fromCodePoint(num1, num2, /* …, */ numN)

매개변수

num1, …, numN

유니코드의 코드 포인트를 표현하는 0부터 0x10FFFF 이하의 정수.

반환 값

명시된 코드 포인트의 시퀀스를 사용하여 생성된 문자열

예외

RangeError

numN이 정수가 아니거나 0보다 작거나 혹은 숫자로 변환된 후 0x10FFFF보다 크면 발생합니다.

설명

fromCodePoint()String의 정적 메서드이기 때문에, 항상 사용자가 만든 String 값의 메서드가 아닌 String.fromCodePoint()로 사용합니다.

유니코드 코드 포인트의 범위는 0에서 1114111(0x10FFFF)까지입니다. UTF-16에서 각 문자열 인덱스는 0 - 65535 값을 갖는 코드 단위입니다. 더 높은 코드 포인트는 16비트 서로게이트 의사 문자의 쌍으로 표현됩니다. 따라서 fromCodePoint()는 전달된 인수 수보다 length(UTF-16 코드 단위)가 더 큰 문자열을 반환할 수 있습니다. 유니코드에 대한 자세한 내용은 UTF-16 문자, 유니코드 코드 포인트 및 문자소 클러스터를 참조하세요.

예제

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"

아래는 유효하지 않은 입력입니다.

js
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

fromCharCode()와의 비교

String.fromCharCode()는 코드 포인트를 지정하여 보조 문자(예: 코드 포인트 0x010000 - 0x10FFFF)를 반환할 수 없습니다. 대신 보조 문자를 반환하려면 UTF-16 서로게이트 쌍이 필요합니다.

js
String.fromCharCode(0xd83c, 0xdf03); // Code Point U+1F303 "Night with
String.fromCharCode(55356, 57091); // Stars" === "\uD83C\uDF03"

반면 String.fromCodePoint()는 코드 포인트(UTF-32 코드 단위와 동일)를 지정하여 4바이트 보조 문자뿐만 아니라 보다 일반적인 2바이트 BMP 문자도 반환할 수 있습니다.

js
String.fromCodePoint(0x1f303); // or 127747 in decimal

명세서

Specification
ECMAScript Language Specification
# sec-string.fromcodepoint

브라우저 호환성

BCD tables only load in the browser

같이 보기