Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

이 페이지는 영어로부터 커뮤니티에 의하여 번역되었습니다. MDN Web Docs에서 한국 커뮤니티에 가입하여 자세히 알아보세요.

String.prototype.charCodeAt()

BaselineWidely available

String 값의charCodeAt() 메서드는 주어진 인덱스의 UTF-16 코드 단위를 표현하는065535 사이의 정수를 반환합니다.

charCodeAt()은 항상 문자열을UTF-16 코드 단위의 시퀀스로 색인하므로 론 서로게이트(lone surrogates)를 반환할 수 있습니다. 주어진 인덱스에서 전체 유니코드 코드 포인트를 가져오려면String.prototype.codePointAt()를 사용합니다.

시도해 보기

const sentence = "The quick brown fox jumps over the lazy dog.";const index = 4;console.log(  `Character code ${sentence.charCodeAt(index)} is equal to ${sentence.charAt(    index,  )}`,);// Expected output: "Character code 113 is equal to q"

구문

js
charCodeAt(index)

매개변수

index

반환할 문자의 0 기반 인덱스.정수로 변환되는 원칙에 따라undefined은 0으로 변환됩니다.

반환 값

명시된index에 있는 문자의 UTF-16 코드 단위 값를 표현하는0 부터65535사이의 정수입니다. 만약index0부터str.length - 1 사이의 범위를 벗어난다면charCodeAt()NaN을 반환합니다.

설명

문자열의 문자는 왼쪽에서 오른쪽으로 색인됩니다. 첫 번째 문자의 인덱스는0이고str이라 불리는 문자열의 마지막 문자열의 인덱스는str.length - 1입니다.

유니코드 코드 포인트 범위는0에서1114111(0x10FFFF)까지입니다. 더 높은 코드 포인트는 16비트 의사 문자의 서로게이트로 표현되기 때문에charCodeAt()은 항상65536보다 작은 값을 반환합니다. 따라서65535보다 큰 값을 가진 전체 문자를 얻으려면charCodeAt(i)뿐만 아니라charCodeAt(i + 1)도 검색하거나(두 문자로 된 문자열을 조작하는 것처럼)codePointAt(i)를 대신 사용해야 합니다. 유니코드에 대해 정보를 더 알고 싶으시면UTF-16 문자, 유니코드 코드 포인트 그리고 그래프 클러스터를 참고하시기 바랍니다.

예제

charCodeAt() 사용하기

다음 예제는 유니코드 값 A에 해당하는65를 반환합니다.

js
"ABC".charCodeAt(0); // 65 반환

charCodeAt()은 유효한 유니코드 문자가 아닌 론 서로게이트(lone surrogates)를 반환할 수 있습니다.

js
const str = "𠮷𠮾";console.log(str.charCodeAt(0)); // 유효한 유니코드 문자가 아닌 55362, 혹은 d842console.log(str.charCodeAt(1)); // 유효한 유니코드 문자가 아닌 57271, 혹은 dfb7

주어진 인덱스의 온전한 유니코드 코드 포인트를 얻기 위해서는String.prototype.codePointAt()를 사용하세요.

js
const str = "𠮷𠮾";console.log(str.codePointAt(0)); // 134071

참고:charCodeAt()을 사용하여codePointAt()을 다시 구현하지 마세요. UTF-16 서로게이트에서 유니코드 코드 포인트로의 변환은 복잡하며codePointAt()은 문자열의 내부 표현을 직접 사용하므로 성능이 더 우수할 수 있습니다. 필요한 경우codePointAt()에 대한 폴리필을 설치하시기 바랍니다.

아래는유니코드 FAQ에서 발췌한 UTF-16 코드 단위 쌍을 유니코드 코드 포인트로 변환하는 가능한 알고리즘입니다.

js
// constantsconst LEAD_OFFSET = 0xd800 - (0x10000 >> 10);const SURROGATE_OFFSET = 0x10000 - (0xd800 << 10) - 0xdc00;function utf16ToUnicode(lead, trail) {  return (lead << 10) + trail + SURROGATE_OFFSET;}function unicodeToUTF16(codePoint) {  const lead = LEAD_OFFSET + (codePoint >> 10);  const trail = 0xdc00 + (codePoint & 0x3ff);  return [lead, trail];}const str = "𠮷";console.log(utf16ToUnicode(str.charCodeAt(0), str.charCodeAt(1))); // 134071console.log(str.codePointAt(0)); // 134071

명세서

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.charcodeat

브라우저 호환성

같이 보기

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp