_문자열_은 텍스트 데이터를 저장하기 위한 JavaScript의 데이터 타입이에요. 개별 문자를 위한 별도의 데이터 타입은 없어요.
텍스트를 작은따옴표나 큰따옴표로 감싸면 문자열 리터럴을 만들어요. Exercism에서는 작은따옴표를 사용해요.
'Hello, World!'
"Hello, World!"
텍스트의 일부 특수 문자 앞에는 백슬래시 \를 붙여야 해요. 자세한 내용은 MDN의 이스케이프 시퀀스를 참고해요.
const text = 'I\'m having fun.\nWhat about you?';
console.log(text);
// => I'm having fun.
// => What about you?
작은따옴표와 큰따옴표 외에도, 텍스트를 백틱으로 감싸서 문자열을 만들 수도 있어요. 이 문법을 사용하면 작은따옴표나 큰따옴표, 심지어 줄바꿈까지 이스케이프할 필요 없이 포함할 수 있어요. 표현식을 삽입할 수도 있는데, 자세한 내용은 템플릿 문자열을 참고해요.
`A multi-line string
with 'single quotes'
and "double quotes"`;
문자열은 문자의 배열로 다룰 수 있고, 첫 번째 문자의 인덱스는 0이에요.
대괄호와 가져오고 싶은 글자의 인덱스를 사용해서 문자열의 개별 문자에 접근할 수 있어요.
또는 charAt 메서드도 있어요.
'cat'[1];
// => 'a'
'cat'.charAt(2);
// => 't'
length 속성에 접근하면 문자열의 문자 수를 알 수 있어요.
'cat'.length;
// => 3
문자열을 연결하는 가장 간단한 방법은 덧셈 연산자 +를 사용하는 거예요.
'I like' + ' ' + 'cats.';
// => "I like cats."
문자열은 다양한 편의 메서드를 제공해요. 전체 목록은 MDN의 문자열 메서드 문서를 참고해요. 다음은 자주 사용하는 편의 메서드 몇 가지예요.
toUpperCase와 toLowerCase - 모든 문자의 대소문자를 바꿔요trim - 앞뒤의 공백을 제거해요includes, startsWith 그리고 endsWith - 다른 문자열이 주어진 문자열의 일부인지 확인해요slice - 문자열의 일부분을 추출해요위의 메서드를 적용해도 원래 문자열은 절대 바뀌지 않아요. 대신 새로운 문자열이 만들어져 반환돼요. JavaScript에서 문자열(그리고 다른 원시 데이터 타입)은 불변이에요. 즉, 위에서 보여 준 대괄호 문법으로 특정 인덱스에 다른 문자를 할당할 수 없다는 뜻이에요(배열에서는 할 수 있듯이요).
const str = 'cat';
str[1] = 'u'; // fails silently
console.log(str);
// => 'cat'