String.prototype.charAt()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
charAt() 㯠String å¤ã®ã¡ã½ããã§ãæå®ãããã¤ã³ããã¯ã¹ã«ããåä¸ã® UTF-16 ã³ã¼ãåä½ãããªãæ°ããæååãè¿ãã¾ãã
charAt() ã¯å¸¸ã«æååã UTF-16 ã³ã¼ãåä½ã®ä¸¦ã³ã¨ãã¦ç´¢å¼ä»ãã¾ãããã®ãããå¤ç«ãããµãã²ã¼ããè¿ãå¯è½æ§ãããã¾ããæå®ãããã¤ã³ããã¯ã¹ã®å®å
¨ãª Unicode ã³ã¼ããã¤ã³ããåå¾ããã«ã¯ãString.prototype.codePointAt() ããã³ String.fromCodePoint() ã使ç¨ãã¦ãã ããã
試ãã¦ã¿ã¾ããã
const sentence = "The quick brown fox jumps over the lazy dog.";
const index = 4;
console.log(`The character at index ${index} is ${sentence.charAt(index)}`);
// äºæ³ãããçµæ: "The character at index 4 is q"
æ§æ
charAt(index)
弿°
index-
è¿ãããæåã®ã¼ãããå§ã¾ãæåã®ã¤ã³ããã¯ã¹ã§ããæ´æ°ã«å¤æããã¾ãã
undefined㯠0 ã«å¤æããã¾ãã
è¿å¤
æå®ããã index ã®ä½ç½®ã«ããæåï¼å³å¯ã« 1 ã¤ã® UTF-16 ã³ã¼ããã¤ã³ãï¼ã表ãæååã§ããindex ã®ä½ç½®ãæååã®ç¯å²ãå¤ãã¦ããå ´åã¯ãcharAt() ã¯ç©ºæååãè¿ãã¾ãã
解説
æååã®ä¸ã®æåã¯ãå·¦ããå³ã«åãã¦ã¤ã³ããã¯ã¹ä»ãããã¦ãã¾ããæåã®æåã®æ·»å㯠0 ã§ãããæå¾ã®æåã®æ·»å㯠str ã¨ããååã®æååã§ããã° str.length - 1 ã§ãã
Unicode ã®ã³ã¼ããã¤ã³ã㯠0 ãã 1114111 (0x10FFFF) ã¾ã§ã®ç¯å²ã§ããcharAt() ã¯å¸¸ã« 65536 ããå°ããå¤ãè¿ãã¾ãããããã¯ä¸ä½ã®ã³ã¼ããã¤ã³ã㯠16 ãããã®ãµãã²ã¼ãæ¬ä¼¼æåã®ãã¢ã«ãã£ã¦è¡¨ããã¦ããããã§ãããããã£ã¦ã65535 ãã大ããå¤ãæã¤å®å
¨ãªæåãåå¾ããã«ã¯ãcharAt(i) ã ãã§ãªã charAt(i + 1) ãåå¾ãããï¼2 ã¤ã®æåãæã¤æååãæä½ããå ´åã¨åãã§ãï¼ãã¾ã㯠codePointAt(i) 㨠String.fromCodePoint() ã使ç¨ããå¿
è¦ãããã¾ããUnicode ã«é¢ããæ
å ±ã¯UTF-16 æåãUnicode ã³ã¼ããã¤ã³ããæ¸è¨ç´ ã¯ã©ã¹ã¿ã¼ãåç
§ãã¦ãã ããã
charAt() 㯠ãã©ã±ããè¨æ³ã使ç¨ãã¦æå®ãããä½ç½®ã®æåã«ã¢ã¯ã»ã¹ããã®ã«ã¨ã¦ãä¼¼ã¦ãã¾ãã主ãªéãã¯æ¬¡ã®éãã§ãã
charAt()ã¯indexãæ´æ°ã«å¤æãããã¨ãã¾ããããã©ã±ããè¨æ³ã¯ããããã«ãç´æ¥indexãããããã£åã¨ãã¦ä½¿ç¨ãã¾ããcharAt()ã¯indexãç¯å²å¤ã§ãã£ãã¨ãã«ç©ºæååãè¿ãã¾ããããã©ã±ããè¨æ³ã¯undefinedãè¿ãã¾ãã
ä¾
>æååã®ä¸ã®æ§ã ãªä½ç½®ã®æåã®è¡¨ç¤º
次ã®ä¾ã¯ã`"Brave new world"`` ã¨ããæååã®ä¸ã®æ§ã ãªä½ç½®ã®æåã表示ãã¾ãã
const anyString = "Brave new world";
console.log(`The character at index 0 is '${anyString.charAt()}'`);
// No index was provided, used 0 as default
console.log(`The character at index 0 is '${anyString.charAt(0)}'`);
console.log(`The character at index 1 is '${anyString.charAt(1)}'`);
console.log(`The character at index 2 is '${anyString.charAt(2)}'`);
console.log(`The character at index 3 is '${anyString.charAt(3)}'`);
console.log(`The character at index 4 is '${anyString.charAt(4)}'`);
console.log(`The character at index 999 is '${anyString.charAt(999)}'`);
ãããã®è¡ã¯ä»¥ä¸ã®ããã«è¡¨ç¤ºããã¾ãã
The character at index 0 is 'B' The character at index 0 is 'B' The character at index 1 is 'r' The character at index 2 is 'a' The character at index 3 is 'v' The character at index 4 is 'e' The character at index 999 is ''
charAt() ã¯å¦¥å½ãª Unicode æåã§ã¯ãªããå¤ç«ãµãã²ã¼ããè¿ãå¯è½æ§ãããã¾ãã
const str = "ð ®·ð ®¾";
console.log(str.charAt(0)); // "\ud842"ãããã¯å¦¥å½ãª Unicode æåã§ã¯ãªã
console.log(str.charAt(1)); // "\udfb7"ãããã¯å¦¥å½ãª Unicode æåã§ã¯ãªã
æå®ãããä½ç½®ã®å®å
¨ãª Unicode ã³ã¼ããã¤ã³ããåå¾ããã«ã¯ãString.prototype.codePointAt() ãã¹ãã¬ããæ§æã®ããã«ãUnicode ã³ã¼ããã¤ã³ãã§åå²ã㦠Unicode ã³ã¼ããã¤ã³ãã®é
åã«ããã¤ã³ããã¯ã¹ã¡ã½ããã使ç¨ãã¦ãã ãã
const str = "ð ®·ð ®¾";
console.log(String.fromCodePoint(str.codePointAt(0))); // "ð ®·"
console.log([...str][0]); // "ð ®·"
ã¡ã¢:
charAt() ã使ç¨ãã¦ä¸è¨ã®è§£æ±ºçãåå®è£
ãããã¨ã¯é¿ãã¦ãã ãããå¤ç«ãµãã²ã¼ãã®æ¤åºã¨ãã®ãã¢ãªã³ã°ã¯è¤éã§ãæååã®å
é¨è¡¨ç¾ãç´æ¥ä½¿ç¨ããçµã¿è¾¼ã¿ API ã®æ¹ãããã©ã¼ãã³ã¹ãé«ãããããã¾ãããå¿
è¦ã§ããã°ãä¸è¨ã® API ã®ããªãã£ã«ãã¤ã³ã¹ãã¼ã«ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.charat> |