[Javascript] Tagged Template Strings
Tagged Template Strings
이전에 템플릿 문자열이라는 형태로 문자열에 변수를 삽입하는 방법을 배웠었습니다.
오늘 다룰 문법은 템플릿 문자을 발전시킨 Tagged Template Strings(Literals)
에 대해서 알아보도록 하겠습니다.
Tagged Template Strings
는 함수형태로 이용할 수 있는 템플릿 문자열입니다. 이때, 템플릿 문자열에서 변수와 문자를 구분지을 수 있다는 특징이 있습니다.
이전에 템플릿 문자열을 배우면서 만들었던 코드로 Tagged Template Strings
를 사용해보겠습니다.
const tts = (...args) => console.log(args);
let str = '막대사탕';
let price = 1000;
tts`${str}의 가격은 ${price}원 입니다.`;
코드에서 눈에 띄는 곳이 함수를 호출하는 부분입니다. 기본에 알고있는 호출 방식인 tts()
가 아니라 tts``
과 같은 방식으로 사용되었습니다. 이런 호출방식이 Tagged Template Strings
의 첫 번째 특징입니다.
위 코드의 실행결과도 한 번 확인해보겠습니다.
결과가 [['', '의 가격은 ', '원 입니다.', raw: Array(3)], '막대사탕', 1000]
이라고 나왔습니다. 전개 연산자에 따라 반환값들이 묶였는데요.
첫 요소인 ['', '의 가격은 ', '원 입니다.', raw: Array(3)]
는 문자들이 들어있습니다. 우리가 설정한 변하지 않는 문자들이죠. 그리고 그 다음 요소로 '막대사탕', 1000
이 오면서 변수들이 저장되어있음을 볼 수 있습니다. 이때, 템플릿 문자열 형태로 사용되었지만, 함수에서 파라미터로 사용될 때는 변수의 원래 자료형이 유지되었음을 볼 수 있습니다. 따라서 Tagged Template Strings
로 전달된 데이터는 자료형을 유지한다라는 것을 알 수 있습니다.
정리하자면 우리가 이 코드와 결과에서 알 수 있는 것은 다음 두 가지 입니다.
Tagged Template Strings
으로 사용되는 함수는 파라미터로 문자열과 변수를 받게된다.- 함수 내에서 문자는 문자대로 변수는 타입이 그대로 유지된다.
사실 자바스크립트만을 활용해서 무언갈 만들어 낼 때 Tagged Template Strings
을 활용할 일은 잘 없으리라 생각됩니다. 하지만 자바스크립트 기반의 라이브러리에서 종종 이 문법을 찾아 볼 수 있는데요. 대표적으로 React.js
의 styled-component
라이브러리가 이 문법을 채용하고 있습니다. 따라서 Tagged Template Strings
를 채택한 라이브러리를 이용할 때 이 문법을 우리가 알고라도 있다면 사용하는데 큰 도움이 되겠죠?
Author And Source
이 문제에 관하여([Javascript] Tagged Template Strings), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bami/Javascript-Tagged-Template-Strings저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)