문자열은 string
, 문자 하나는 character
이며 char
로 축약해 부르기도 한다.
let str = 'CodeStates';
str[1] // o / read-only
'1' + true // '1true'
'1' + [1, 2, 3] // '1123'
+
: +연산자를 사용가능, string타입과 다른 타입 사이에 +를 사용하면 string 형식으로 변환(toString)된다.
concat
: 보통 사용하지 않는다. +연산자를 사용한다.
템플릿 리터럴(Template literals)
문법 : `` 백틱으로 감싸서 표현하는 문법
`문자열${str}` // '문자열CodeStates'
`문자열
작성 시 여러 줄에
걸쳐 작성이 가능하다.` // 문자열 작성 시 여러 줄에 걸쳐 작성이 가능하다.
하위 호환성을 위해 남아있는 메서드charAt(Pos)
str.charAt(0) // C
str[10] // undefined
str.charAt(10) // ''
indexOf()
: 문자 내에 ()안의 요소가 존재하는지 확인하고 해당 요소의 인덱스 값을 반환한다.
lastIndexOf()
: 문자열 뒤에서 부터 요소가 존재하는지 확인하고 해당 요소의 인덱스 값(뒤에서 부터)을 반환한다.
indexOf(searchValue)
arguments // 찾고자 하는 문자열
return value // 처음으로 일치하는 index를 반환한다, 찾고자 하는 문자열이 없으면 -1
.length
: 문자열의 전체 길이를 반환한다.
split()
: 문자열을 배열로 분리, csv(comma-separated values : 몇 가지 필드를 쉼표로 구분한 텍스트 데이터 및 텍스트 파일)형식을 처리할 때 유용하다.
arr.spilt(seperator)
argument // 분리기준이 될 문자열
return valur // 분리된 문자열이 포함된 배열
let arr = 'Hello from the other side'
arr.split(' '); // 띄어쓰기(공백)로 나눈다
['Hello', 'from', 'the', 'other', 'side'] // 나온 배열
\n // 줄바꿈을 찾아냄
arr.split('\n')
\t
탭\r\n
Carrige return\n
return문자\'
\"
따옴표\\
역슬래시\b
\f
\v
substring
: 시작과 끝 index 사이의 문자열을 가져온다. 이 때, 끝 index 숫자에 위치한 문자는 포함되지 않는다.
let arr = 'Hello from the other side'
arr.substring(0, 4) // Hell
arr.substring(4, 0) // Hell
argument // 시작 index, 끝 index
return value // 시작과 끝 index 사이의 문자열
slice()
: 문자열을 원하는 만큼 복사한다. 음수값이 허용된다.
let arr = 'Hello from the other side'
arr.slice(0, 4) // Hell
arr.slice(4, 0) // ''
arr.slice(-4, -1) // sid
arr.slice(-1, -4) // ''
arr.slice(-4) // side
argument // 시작 index, 끝 index
return value // 시작과 끝 index 사이의 문자열
includes()
: 문자 내에 ()안의 요소가 존재하는지 확인해 불리언 값을 반환한다. indexOf에 비해 브라우저 호환성이 떨어진다.
[]
원하는 문자의 index를 찾고 접근
join()
toUpperCase()
: 소문자를 대문자로 변환
toLowerCase()
: 대문자를 소문자로 변환
IMMUTABLE
: 모든 string method는 immutable, 원본이 변하지 않는다. 원본을 바꾸고 싶으면 새로 대입시켜줘야 한다.
MUTABLE
: 원본이 변한다.
trim()
: 문자열 앞과 끝의 공백 문자를 다듬어 준다(제거).
repeat(n)
: 문자열을 n번 반복한다.
match
: 인자에 포함된 문자를 찾으면 이를 반환한다.replace('원본문자열', '바꿀문자열')
: 원본문자열을 바꿀문자열로 변환한다. 단, 중복되는 글자가 있을 경우 첫번째 단어만 변환된다. 대소문자를 구분한다.replaceAll('원본문자열', '바꿀문자열')
: 원본문자열을 바꿀문자열로 모두 변환한다. 대소문자를 구분한다.if(!location.href.match('/ko')) // 현재 페이지 링크에 해당 글자가 있는지를 찾아 반환한다.
if(arr.match('from') === 'from') // true
arr.replace('o', 'a') // 'Hella from the other side'
arr.replaceAll('o', 'a') // 'Hella fram the ather side'