substring() vs slice()

개요

문자열을 다루는 함수들을 종종 사용하게 되는데 그 중 substring 메서드와 slice 메서드는 동작이 비슷해서 사용할 때마다 헷갈림을 유발한다. 더이상 햇갈리지 않도록 핵심만 기록하려고 한다.

공통점

두 메서드는 숫자 한 개 또는 두 개를 파라미터로 받아서 일부의 문자열을 반환하는 메커니즘을 가지고 있다. 다음과 같은 경우일 때 두 메서드는 같은 결과를 반환환다.

파라미터가 한 개일 때 : first >= 0
파라미터가 두 개일 때 : first >= 0 && second >= 0 && second >= first

substring이나 slice는 보통 위와 같은 파라미터로 사용하기 때문에 이럴 경우 고민하지 말고 slice만 사용하자! 이유는 문자열의 경우 배열과 비슷한점이 많고 slice는 배열을 조작할 때도 사용하기 때문!

substring의 특징

  1. 파라미터로 음수(-)를 전달하면 0으로 취급한다.
  2. 첫 번째 파라미터보다 두 번째 파라미터가 클 경우 두 개의 파라미터의 위치가 서로 바뀐 경우와 같은 결과를 반환한다.
	"012345".substring(1, 3) // "12"
	"012345".substring(3, 1) // "12"

slice의 특징

  1. 파라미터로 음수(-)를 전달하면 역 index로 반환된다. (10자리 문자열일 경우 -1 === 9, -2 === 8 => index = length + 역 index
  2. 첫 번째 파라미터보다 두 번째 파라미터가 클 경우 빈 문자열을 반환한다.

좋은 웹페이지 즐겨찾기