자바스크립트에서 문자열을 처리하고 가공할 때 사용하는 String 객체는 웹 개발에서 가장 많이 쓰이는 객체 중 하나입니다.
문자열은 원시 타입(Primitive type)이지만, 메소드를 호출할 때 자바스크립트 엔진이 내부적으로 String 객체로 변환(래퍼 객체)하여 처리해 줍니다.
실무 및 알고리즘 테스트에서 빈번하게 등장하는 중요 메소드들을 5가지 카테고리로 나누어 정리해 드리겠습니다.
1. 문자열 검색 및 확인
문자열 안에 특정 글자나 단어가 포함되어 있는지 확인할 때 사용합니다.
- indexOf(searchString): 특정 문자열이 시작하는 첫 번째 인덱스를 반환합니다. (찾지 못하면 -1 반환)
- includes(searchString): 특정 문자열이 포함되어 있는지 여부를 true / false로 반환합니다. (ES6+)
- startsWith() / endsWith(): 문자열이 특정 문자열로 시작하는지 또는 끝나는지 확인하여 true / false를 반환합니다. (ES6+)
const str = "Hello, JavaScript World!";
console.log(str.indexOf("Java")); // 7
console.log(str.indexOf("Python")); // -1 (없음)
console.log(str.includes("World")); // true
console.log(str.startsWith("Hello")); // true
2. 문자열 추출 (잘라내기)
문자열의 일부분만 따로 떼어내서 새로운 문자열을 만들 때 사용합니다.
- slice(start, end): 시작 인덱스부터 끝 인덱스 직전까지의 문자열을 잘라냅니다.
- 특징: 음수 인덱스를 넣으면 문자열의 뒤에서부터 계산합니다.
- substring(start, end): slice와 유사하게 특정 구간을 잘라내지만, 음수 인덱스를 0으로 취급합니다.
- split(separator): 전달한 구분자를 기준으로 문자열을 쪼개어 배열(Array)로 반환합니다. (매우 중요)
const text = "Apple, Banana, Orange";
// slice 활용 (인덱스 7부터 13 직전까지)
console.log(text.slice(7, 13)); // "Banana"
console.log(text.slice(-6)); // "Orange" (뒤에서 6번째부터 끝까지)
// split 활용 (쉼표와 공백을 기준으로 배열 생성)
const fruits = text.split(", ");
console.log(fruits); // ["Apple", "Banana", "Orange"]
3. 문자열 변환 및 치환
문자열의 내용을 바꾸거나 공백을 제거할 때 사용합니다.
- replace(target, replacement): 처음 발견된 특정 문자열을 새 문자열로 한 번만 바꿉니다.
- replaceAll(target, replacement): 일치하는 모든 문자열을 새 문자열로 전부 바꿉니다. (ES2021+)
- toLowerCase() / toUpperCase(): 문자열을 모두 소문자 또는 대문자로 변환합니다.
- trim(): 문자열 앞뒤의 쓸데없는 공백을 말끔히 제거합니다. (로그인 아이디 입력 등에서 필수)
const message = " Java ";
console.log(message.trim()); // "Java" (공백 제거)
const badWords = "apple is good. apple is red.";
console.log(badWords.replace("apple", "banana")); // "banana is good. apple is red."
console.log(badWords.replaceAll("apple", "banana")); // "banana is good. banana is red."
4. 문자열 길이 및 특정 위치 접근
- length (프로퍼티): 메소드는 아니지만 문자열의 전체 길이(글자 수)를 반환합니다.
- charAt(index): 지정한 인덱스에 있는 문자 한 글자를 반환합니다. (최신 JS에서는 대괄호 배열 문법 str[index]로 대체 가능)
const password = "secure1234";
console.log(password.length); // 10
console.log(password.charAt(0)); // "s"
console.log(password[0]); // "s" (배열처럼 접근 가능)
5. 문자열 채우기 (Padding)
데이터의 포맷(예: 날짜나 시계의 '01'초 표시)을 맞출 때 유용한 메소드입니다. (ES2017+)
- padStart(targetLength, padString): 지정한 길이가 될 때까지 문자열의 앞쪽을 특정 문자로 채웁니다.
- padEnd(targetLength, padString): 지정한 길이가 될 때까지 문자열의 뒤쪽을 특정 문자로 채웁니다.
const num = "7";
console.log(num.padStart(2, "0")); // "07" (디지털시계 분/초 표시에 자주 사용)
console.log(num.padEnd(4, "*")); // "7***" (마스킹 처리에 유용)
📋 String 객체 중요 메소드 요약표
| 메소드 | 기능 | 예시 | 결과 |
| includes() | 특정 문자열 포함 여부 | "abc".includes("b") | true |
| slice() | 특정 구간 잘라내기 | "JavaScript".slice(0, 4) | "Java" |
| split() | 구분자로 쪼개어 배열 변환 | "a-b-c".split("-") | ["a", "b", "c"] |
| replaceAll() | 일치하는 문자 모두 치환 | "go go".replaceAll("go", "run") | "run run" |
| trim() | 앞뒤 공백 제거 | " hello ".trim() | "hello" |
| padStart() | 앞쪽에 지정한 문자 채우기 | "5".padStart(3, "0") | "005" |
학습 정리
- 원본 문자열을 직접 수정하는 메소드는 없습니다. 자바스크립트의 문자열은 **변경 불가능(Immutable)**하기 때문에, 모든 변환 메소드는 언제나 새로운 문자열을 생성하여 반환합니다.
- 배열을 다루는 메소드들과 split(), join()을 연계하면 복잡한 알고리즘 문제를 아주 쉽게 해결할 수 있습니다.
텍스트 데이터를 정교하게 가공하는 String 객체의 핵심 메소드들을 모두 정복하셨습니다!

'JavaScript' 카테고리의 다른 글
| JavaScript and LocalStorage and JSON (0) | 2026.06.01 |
|---|---|
| JavaScript JSON object method (0) | 2026.06.01 |
| JavaScript Math object method (1) | 2026.06.01 |
| JavaScript Array method (0) | 2026.05.29 |
| JavaScript variables life cycle (0) | 2026.05.04 |