Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

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

String.prototype.codePointAt()

BaselineWidely available

String 값의codePointAt() 메서드는 주어진 인덱스에서 시작하는 문자의 유니코드 코드 포인트 값인 음수가 아닌 정수를 반환합니다. 인덱스는 여전히 유니코드 코드 포인트가 아닌 UTF-16 코드 단위를 기반으로 한다는 점에 유의하시기 바랍니다.

시도해 보기

const icons = "☃★♲";console.log(icons.codePointAt(1));// Expected output: "9733"

구문

js
codePointAt(index)

매개변수

index

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

반환 값

주어진index에 있는 문자열의 코드 포인트 값을 표현하는 음이 아닌 정수.

  • index0부터str.length - 1의 범위에서 벗어난다면,codePointAt()undefined을 반환합니다.
  • index에 있는 요소가 서로게이트로 선행 UTF-16이라면 서로게이트 쌍의 코드 포인트를 반환합니다.
  • index에 있는 요소가 서로게이트로 후행 UTF-16이라면 서로게이트 후행 만을 반환합니다.

설명

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

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

예제

codePointAt() 사용하기

js
"ABC".codePointAt(0); // 65"ABC".codePointAt(0).toString(16); // 41"😍".codePointAt(0); // 128525"\ud83d\ude0d".codePointAt(0); // 128525"\ud83d\ude0d".codePointAt(0).toString(16); // 1f60d"😍".codePointAt(1); // 56845"\ud83d\ude0d".codePointAt(1); // 56845"\ud83d\ude0d".codePointAt(1).toString(16); // de0d"ABC".codePointAt(42); // undefined

반복문에서 codePointAt() 사용

반복에 문자열 인덱스를 사용하면 동일한 코드 포인트를 두 번(선행 서로게이트에 한 번, 후행 서로게이트에 한 번) 방문하게 되고 두 번째codePointAt()은 후행 서로게이트만 반환하므로 인덱스로 반복은 피하는 것이 좋습니다.

js
const str = "\ud83d\udc0e\ud83d\udc71\u2764";for (let i = 0; i < str.length; i++) {  console.log(str.codePointAt(i).toString(16));}// '1f40e', 'dc0e', '1f471', 'dc71', '2764'

대신 코드 포인트별로 반복하는 문자열의@@iterator를 호출하는for...of 문이나문자열 전개를 사용합니다. 그런 다음codePointAt(0)을 사용하여 각 요소의 코드 포인트를 가져옵니다.

js
for (const codePoint of str) {  console.log(codePoint.codePointAt(0).toString(16));}// '1f40e', '1f471', '2764'[...str].map((cp) => cp.codePointAt(0).toString(16));// ['1f40e', '1f471', '2764']

명세서

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

브라우저 호환성

같이 보기

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp