[javascript] 문자열 합치기

간단하게 '+' 연산자를 이용해 두개의 문자열을 연산하면 하나의 문자열로 합해집니다.

'문자열1' + '문자열2' // '문자열1문자열2' 를 반환

조금 더 복잡하고 고급스러운 문자열 합치기를 하려면 문자열 메서드인 concat()를 사용하면 됩니다.

concat() 메서드는 문자열 메서드이기 때문에 

const str1 = '문자열1';const str2 = '문자열2';
console.log(str1.concat(str2)); // '문자열1문자열2' 를 반환

이렇게 사용해야 합니다.

이런 번거로움을 피하고 합치는데 필요한 문자열 변수를 모두 파라메터로 넣고 싶으면

console.log(''.concat(str1, str2)); // '문자열1문자열2' 를 반환

이렇게 빈 문자열의 메서드로 호출을 하면 됩니다.

간단하지만, 의외로 잘 모르는 방식입니다.

문자열 변수 여러개를 파라메터로 넣는 것은 간단하지만, 여러개의 문자열은 대부분 배열로 존재하는 경우가 더 많습니다.

let strarr = ['good', ' ', 'morning', '!'];console.log(''.concat(...strarr)); // 'good morning!' 을 반환

strarr 앞의 점3개는 전개 구문(spread argument)이라고 하는 ES2015에서 새로 추가된 구문입니다.

배열의 요소들을 파라메터(인수)로 확장해주는 기능을 합니다.

굉장히 편리한 방법이므로 알아두 필요가 있고, 배열 부분에서 자세하게 베우게 되므로 여기서는 이런 방법이 있다는 것만 알고 일단 넘어갑니다.


!주의할점

배열에도 concat() 메서드가 있습니다.

같은 메서드여서 착각을 하는 경우가 생기는데 배열의 concat() 메서드는 2개 이상의 배열을 1개의 배열로 합치는 기능으로, 배열을 하나의 문자열로 바꾸거나 하는 기능이 아닙니다.