str.split(separator, limit?)
메서드는 구분자(separator)를 기준으로 문자열을 분리할 때 사용하한다. 사용법도 간단하고 개발하면서 가장 많이 사용하는 메서드 중 하나다. 하지만 split()
을 사용하다보면 의도치 않게 ''
빈 문자열이 생기는 상황이 종종 발생한다.
split()
메서드는 문자열 시작 지점부터 구분자를 탐색하면서 그 사이에 어떤 문자열이 존재하는지 확인한다. 만약 구분자를 제외하고 다른 문자열이 없으면 빈 문자열을 반환한다. 정리하면 아래 3가지 상황에 부합할 때마다 빈 문자열이 발생한다.
'?apple'.split('?'); // ['', 'apple']
'??apple'.split('?'); // ['', '', 'apple']
'apple?'.split('?'); // ['apple', '']
'apple??banana'.split('?'); // ['apple', '', 'banana']
'apple???banana'.split('?'); // ['apple', '', '', 'banana']
'?apple'.split('?'); // ['', 'apple']
''
반환apple
반환'??apple'.split('?'); // ['', '', 'apple']