[코드잇 스프린트 3기] Pre-course - 자료형 심화2. 문자열

YUYONI·2023년 10월 28일
0
post-thumbnail

문자열

문자열은 배열처럼 여러 함수를 사용해 다룰 수 있음

- length : 길이

공백을 포함해 길이를 알려줌

- [], charAt : 요소 접근

대괄호 표기법으로도 가능하고, 특별히 charAt(n)을 통해서도 접근 가능

let myString = "Hello World!";

console.log(myString[4]); // o
console.log(myString.charAt(4)); // o

- indexOf(),lastIndexOf() : 인덱스 찾기

배열에서 쓸 수 있는 indexOf()와 lastIndexOf()도 사용 가능

let myString = "Hello World!";

console.log(myString.indexOf('o')); // 4
console.log(myString.lastIndexOf('o')); // 7
console.log(myString.lastIndexOf('a')); // -1 (없을 경우 -1)

indexOf를 이용해 인덱스를 찾을 때, 시작위치를 지정하고 싶다면? 두번째 파라미터로 시작위치를 전달하면됩니다!!

let str = "Hello world, welcome to the world of JavaScript.";
console.log(str.indexOf('e'));  // 1
console.log(str.indexOf('e', 11));  // 14
// 인덱스 11부터 찾아서 14번째 e가 나옴

- toUpperCase(), toLowerCase() : 대소문자 변환

let myString = "Hello World!";

console.log(myString.toUpperCase()); // HELLO WORLD!
console.log(myString.toLowerCase()); // hello world!

- trim() : 공백 제거

let myString = "  Hello World!  ";

console.log(myString.trim()); // Hello World! (양쪽 공백이 제거됨)

- slice(start, end) : start부터 end-1까지 잘라서 반환

첫번째 파라미터만 작성하면 start부터 끝까지 가져오고, 모두 생략하면 전체를 다 가져옴

let myString = "Hello World!";

console.log(myString.slice(0,2)); // HE
console.log(myString.slice(6)); // World!
console.log(myString.slice()); // Hello World!

for..of문

배열과 마찬가지로 문자열도 for..of문을 사용해서 요소에 접근할 수 있음

let myString = "Hello";

for (let str of myString) {
  console.log(str);
}

// H
// e
// l
// l
// o

문자열과 배열의 차이

문자열과 배열이 비슷한 점이 많긴 하지만 아예 같진 않음
typeof를 이용해 자료형을 출력해봐도 문자열은 string, 배열은 object이며 "HELLO"와 ["H","E","L","L","O"]를 비교연산자로 비교해도 false 나옴

가장 중요한 차이는 배열은 'mutable(바뀔 수 있는)' 자료형인 반면 문자열은 'immutable(바뀔 수 없는)' 자료형이라는 것!
(배열은 요소에 접근해서 할당연산자를 통해 요소를 수정할 수 있지만 문자열은 한 번 할당된 값을 수정할 수 없음, 즉 일부를 바꾸는 게 아니라 새로운 문자열을 지정해주어야 함)


배열과 문자열에 대해서 다시 한번 되돌아보면, 문자열이 가진 메소드들은 모두 return 값들을 활용하고, 본래의 문자열 값을 수정하지 않음.
같은 의미에서 문자열에 splice 같은 메소드들은 사용할 수 없다는 것을 명심!

profile
기본기와 원리, 개념 철처하게 다지기!

0개의 댓글