JavaScript

JavaScript String object method

lshjju 2026. 6. 1. 11:30

자바스크립트에서 문자열을 처리하고 가공할 때 사용하는 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