문자열도 배열처럼 특정 위치에 접근할 수는 있지만, 특정 위치의 값을 변경하는 것은 안된다.
let desc = "안녕하세요";
desc[2]; // "하" -> 가능
desc[4]; = "용";
console.log(desc); // "안녕하세요" -> 변함없음. 불가능
let desc = "Hi guys. Nice to meet you.";
//toUpperCase() : 대문자로
desc.toUpperCase(); // "HI GUYS. NICE TO MEET YOU."
//toLowerCase() : 소문자로
desc.toLowerCase(); // "hi guys. nice to meet you."
let desc = "Hi guys. Nice to meet you.";
// 당연히 0부터 셈.
desc.indexOf("to"); //14
desc.indexOf("man"); // -1 -> 없는 문자열을 찾으면 -1 반환
주의!
let desc = "Hi guys. Nice to meet you.";
if (desc.indexOf("Hi")) {
console.log("Hi가 포함된 문장입니다.");
}
우리가 원하는 대로 동작하지 않음. indexOf("Hi")
는 0이고, falsy한 값이기 때문에 if문 안이 실행되지 않음.
이런 경우를 막기 위해서는 아래와 같이 작성해주면 됨
let desc = "Hi guys. Nice to meet you.";
if (desc.indexOf("Hi") > -1) {
console.log("Hi가 포함된 문장입니다.");
}
n부터 m 전까지만 남김! (숫자는 물론 인덱스 기준)
n
: 시작점m
: 인수를 안 넣으면 문자열 끝까지라는 의미이고, 양수면 그 숫자 전까지, 음수면 끝에서부터 셈
let desc = "abcdefg";
// 2부터 끝까지만 남김
desc.slice(2); // "cdefg"
// 0부터 5전까지(4까지) 남김
desc.slice(0,5); // "abcde";
// 2부터 끝에서 2번째까지 자르고 남김 -> 헷갈림 주의!
desc.slice(2,-2); // "cde"
n부터 m 전까지만 남김!
str.slie(n,m)
과 유사하지만 n과 m을 바꿔도 동작함
음수는 허용 X. 음수는 0으로 인식함
let desc = "abcdefg";
desc.substring(2,5); // "cde"
desc.substring(5,2); // "cde"
n부터 시작하여 m"개"를 가져옴
let desc = "abcdefg";
desc.substr(2,4); // "cdef"
desc.substr(-4,2); // "de"
문자열 앞뒤 공백 제거
let desc = " coding ";
desc.trim(); // "coding"
문자열 n번 반복
let hello = "hello!";
hello.repeat(3); // "hello!hello!hello!"