Front End/JavaScript

문자열

문자열

모든 글자의 나열을 뜻하며, 컴퓨터는 코드와 문자열을 구분 할 수 있어야 하기 때문에 작은 따옴표 나 큰 따옴표를 사용해서 문자열을 구분한다.

  • 문자 하나는 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