String.prototype.charAt()
사용법
charAt()
함수는
인수로 전달된 문자열의 인덱스 위치에 해당하는 문자를 반환하는 함수입니다.
문자열에서 인덱스는 0
부터 시작합니다.
charAt()
함수는 문자열에서 원하는 위치의 문자를 쉽게 추출할 수 있습니다.
const str = "hello world";
// 첫 번째 문자 추출
let firstChar = str.charAt(0);
console.log(firstChar); // "h"
// 다섯 번째 문자 추출
let fifthChar = str.charAt(4);
console.log(fifthChar); // "o"
// 마지막 문자 추출
let lastChar = str.charAt(str.length - 1);
console.log(lastChar); // "d"
// 음수 인덱스
let negativeChar = str.charAt(-3);
console.log(negativeChar); // "" (빈 문자열)
// 범위 초과 인덱스
let exceedChar = str.charAt(100);
console.log(exceedChar); // "" (빈 문자열)
// 인덱스를 생략하면 인덱스의 기본값은 0
let skipChar = str.charAt();
console.log(skipChar); // "h"
str.length
는 문자열의 길이를 반환합니다.
charAt()
함수의 형식은 다음과 같습니다.
구문
str.charAt(index);
str
은 charAt()
함수를 적용할 대상 문자열입니다.
매개변수
index |
0 부터 시작하는 인덱스(정수)를 지정합니다.
생략하면 기본값으로 0 이 사용됩니다. |
---|
반환 값
index
에 해당하는 유니코드 단일문자를 반환합니다.
단, index
가 음수이거나 문자열의 범위를 벗어날 경우에는 빈 문자열(""
)을 반환합니다.
한글, 일본어, 등 다양한 언어의 문자를 추출할 수 있습니다.
charAt()
vs. 배열 표기법 ([]
, 문자열 인덱싱)
자바스크립트에서는 문자열을 배열처럼 인덱스로 접근할 수 있습니다.
예를 들어, str[0]
은 str.charAt(0)
과 동일한 결과를 반환합니다.
차이점으로
배열 표기법으로 접근할 경우, 인덱스가 범위를 벗어나면 undefined
를 반환하지만, charAt()
은 빈 문자열(""
)을 반환합니다.
let str = "Hello";
console.log(str.charAt(1)); // "e"
console.log(str[1]); // "e"
console.log(str.charAt(10)); // "" (빈 문자열)
console.log(str[10]); // undefined
주의할 점
이모지는 하나의 문자처럼 보이지만 두 개의 코드 유닛으로 표현됩니다.
let emoji = "😊"; // 두 개의 코드 유닛으로 표현됨 <== 주의할 점
console.log(emoji.length); // 2
charAt()
함수는 index
에 해당하는 유니코드 단일문자를 반환하기 때문에 예상과 다른 결과를 얻을 수 있습니다.
다음은 이모지가 포함되어 있는 문자열에 charAt()
함수를 사용했을 때의 문제점입니다.
let emojiStr = "안녕 😊";
console.log(emojiStr.charAt(4)); // " " (공백)
console.log(emojiStr.charAt(5)); // � (잘린 이모지 문자)
여기서 charAt(4)
는 빈 문자열(""
)을 반환하고, charAt(5)
는 이모지의 잘린 코드 단위를 반환하여 정상적인 이모지가 출력되지 않을 수 있습니다.
이모지에 관해서는 웹 페이지에서 이모지(이모티콘) 사용하기를 참고하세요.
브라우저 호환성
메서드 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
charAt()
|
1 | 12 | 1 | 1 |
명세서
명세서 사양 | |
---|---|
charAt()
|
ECMAScript Language Specification #sec-string.prototype.charat |