문자열
모든 글자의 나열을 뜻하며, 컴퓨터는 코드와 문자열을 구분 할 수 있어야 하기 때문에 작은 따옴표’
나 큰 따옴표”
를 사용해서 문자열을 구분한다.
- 문자 하나는 character이며,
char
이라는 축약어로 부르기도 함
- 문자열은 read-only이다. 새로 할당 하지 않는 이상 부분 재할당은 할 수 없다.
str[index]
해당 문자열의 인덱스를 찾아 값을 도출한다. 순서는 0번부터 시작한다. 이 때, index로 접근만 가능할 뿐 (read-only) 해당 문자열을 재할당 할 수는 없다.
let str = 'ninefloor';
console.log(str[0]); // 'n'
console.log(str[4]); // 'f'
console.log(str[9]); // undefined
str[0] = '9';
console.log(str); // 'ninefloor', 재 할당 불가
string + other type
string 타입과 다른 타입 사이에 +
연산자를 쓰면, string 형식으로 변환된다. (toString)
string.concat(anything)
형태의 메소드도 있지만 잘 사용하지 않음
let str1 = 'nine';
let str2 = 'floor';
let str3 = '9';
console.log(str1 + str2); // 'ninefloor'
console.log(str3 + 7) // '97'
length
타입의 속성으로 문자열의 전체 길이를 반환한다.
let str = 'ninefloor';
console.log(str.length); // 9
string의 method
- 모든 string method는 immutable, 즉 원본이 변하지 않는다.
- 메소드를 이용하여 문자열을 변경하려면 변수에 재할당을 해야한다.
string.indexOf(searchValue)
찾고자 하는 문자열을 입력하면 처음으로 일치하는 index를 결과값으로 보여준다. 찾고자 하는 문자열이 없다면 -1을 리턴한다.
- arguments : 찾고자 하는 문자열
- return value : 처음으로 일치하는 index, 찾고자 하는 문자열이 없으면 -1
lastIndexOf
: 문자열을 뒤에서 부터 찾으며, 인덱스 순서는 동일
includes(searchValue)
: 문자열에 전달인자가 포함이 되어있는지 확인하여boolean
값 도출. 단, IE와 같은 구형 브라우저에서는 미작동.
'nine floor'.indexOf('nine'); // 0
'nine floor'.indexOf('Nine'); // -1
'nine floor'.indexOf('floor'); // 5
'nine floor floor'.indexOf('floor'); // 5
'ninefloor'.lastIndexOf('n'); // 2
'ninefloor'.includes('n'); // true
string.split(seperator)
기준이 되는 문자열에 따라 분리하여 분리된 문자열이 포함 된 배열을 만든다. csv 형식을 처리할 때 유용하다.
- arguments : 분리 기준이 될 문자열
- return value : 분리 된 문자열이 포함 된 배열
let str = 'hello world from GG';
console.log(str.split(' '));
// ['hello', 'world', 'from', 'GG']
string.substring(start, end)
찾고자 하는 index의 시작과 끝을 넣으면 시작과 끝 사이에 있는 문자열을 리턴한다. 순서를 바꿔도 상관 없으나 index의 끝은 포함하지 않는다.
- arguments : 시작 index, 끝 index
- return value : 시작과 끝 index 사이의 문자열 (끝 index 미포함)
slice(start, end)
: 사용법은 동일하지만, 시작이 끝보다 크면 빈 문자열 “” 을 리턴하며 음수 값을 넣었을 때 string의 뒤에서부터 계산하여 start 값을 처리한다.
let str = '0123456789';
console.log(str.substring(0,3)); // '012'
console.log(str.substring(3,0)); // '012'
console.log(str.substring(1,4)); // '123'
console.log(str.substring(-1,4)); // '0123', 음수는 0으로 취급
console.log(str.substring(0,20)); // '0123456789', 범위 밖까지 벗어났다면 전부 가져온다
string.toLowerCase() / string.toUpperCase()
문자열을 모두 소문자/대문자로 변환한다.
- arguments : 없음
- return value : 대/소문자로 변환된 문자열
console.log('NINEFLOOR'.toLowerCase()); // 'ninefloor'
console.log('ninefloor'.toUpperCase()); // 'NINEFLOOR'
string.trim()
문자열의 양 끝 공백을 제거한 문자열을 반환한다.
- arguments : 없음
- return value : 양 끝의 공백을 제거한 문자열
trimStart()
/trimEnd()
: 한 쪽 끝의 공백만 제거한다.
let str = ' nine floor ';
console.log(str); // ' nine floor ';
console.log(str.trim()); // 'nine floor';
string.replace(substr, newSubstr)
기준이 되는 문자열을 찾아 대체 문자열로 변환한다. 기준이 될 문자열을 찾을 수 없을 경우 기존 문자열 그대로 리턴하며, 중복 된 문자열이 있을 경우 가장 앞에 있는 문자열만 변환한다. 만약 모든 문자열을 변환하려면 정규 표현식을 이용해야 한다.
- arguments : 기준이 될 문자열, 대체하여 들어 갈 문자열
- return value : 어그먼트를 기준으로 교체된 새로운 문자열
let str = 'nine floor';
console.log(str.replace('nine', '9')); // '9 floor'
console.log(str.replace('vic', '9')); // '9 floor'
console.log(str.replace('n', '9')); // '9ine floor'
Uploaded by N2T