String.prototype.codePointAt()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015ë 9ì.
String ê°ì codePointAt() ë©ìëë 주ì´ì§ ì¸ë±ì¤ìì ììíë 문ìì ì ëì½ë ì½ë í¬ì¸í¸ ê°ì¸ ììê° ìë ì ì를 ë°íí©ëë¤. ì¸ë±ì¤ë ì¬ì í ì ëì½ë ì½ë í¬ì¸í¸ê° ìë UTF-16 ì½ë ë¨ì를 기ë°ì¼ë¡ íë¤ë ì ì ì ìíì기 ë°ëëë¤.
ìëí´ ë³´ê¸°
const icons = "ââ
â²";
console.log(icons.codePointAt(1));
// Expected output: "9733"
구문
codePointAt(index)
매ê°ë³ì
index-
ë°íí 문ìì 0 ê¸°ë° ì¸ë±ì¤. ì ìë¡ ë³íëë ê·ì¹ì ë°ë¼
undefinedë 0ì¼ë¡ ë³íë©ëë¤.
ë°í ê°
주ì´ì§ indexì ìë 문ìì´ì ì½ë í¬ì¸í¸ ê°ì íííë ìì´ ìë ì ì.
indexê°0ë¶í°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() ì¬ì©í기
"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()ì íí ìë¡ê²ì´í¸ë§ ë°ííë¯ë¡ ì¸ë±ì¤ë¡ ë°ë³µì í¼íë ê²ì´ ì¢ìµëë¤.
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)ì ì¬ì©íì¬ ê° ììì ì½ë í¬ì¸í¸ë¥¼ ê°ì ¸ìµëë¤.
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® 2027 Language Specification> # sec-string.prototype.codepointat> |