728x90
안녕하세요. 오늘은 템플릿 리터럴에 대해 알아보려고 합니다.
ES6는 템플릿 리터럴(Template literal)이라고 불리는 새로운 문자열 표기법을 도입하였습니다.
템플릿 리터럴은 일반 문자열과 비슷해 보이지만, ‘ 또는 “ 같은 통상적인 따옴표 문자 대신 백틱(backtick) 문자 `를 사용합니다.
템플릿 리터럴은 + 연산자를 사용하지 않아도 간단한 방법으로 새로운 문자열을 삽입할 수 있는 기능을 제공한다. 이를 문자열 인터폴레이션(String Interpolation)이라 합니다.
템플릿 리터럴의 기본 문법은
`string text` // 문자열 표현
`string text line 1
string text line 2` // 개행된 문자열 표현
var expression;
`string text ${expression} string text` // 변수값 문자열 조합
function tag() { };
tag `string text ${expression} string text` // 함수 호출 인자
' 나 " 대신 ` 을 사용합니다.
ES6 이전에는 문자열을 연결할 때,
var a = 20;
var b = 7;
var c = "개발자";
var str = "저는 " + (a + b) + "살이고 " + c + "입니다.";
console.log(str); //저는 27살이고 개발자입니다.
이런식으로 + 기호를 사용하여 문자열과 변수를 연결했었습니다.
하지만 템플릿 리터럴에서는 이렇게 사용할 수 있습니다.
let a = 20;
let b = 7;
let c = "개발자";
let str = `저는 ${a+b}살이고 ${c}입니다.`;
console.log(str); //저는 27살이고 개발자입니다.
Multi-line strings
템플릿 리터럴을 사용하면 여러 개행 줄의 문자열(Multi-line strings)도 나눠서 작성할 필요가 없이 한번에 작성할 수 있습니다.
console.log("string text line 1\n" + "string text line 2");
//템플릿 리터럴
console.log(`string text line 1
string text line 2`);
Nesting templates
특정 조건을 만족하는 경우(Nesting templates)마다 다른 문자열을 변수에 저장하고 싶다면, 템플릿을 중첩해서 작성해 가독성을 높일 수 있습니다.
const classes = `header ${ isLargeScreen() ? '' :
`icon-${item.isCollapsed ? 'expander' : 'collapser'}` }`;
저는 실제로 이미지 폴더를 지정해줄 때, 템플릿 리터럴을 이렇게 사용했습니다.
const thumbnailPath = 'URL';
const filename = 'image1';
// 기존 사용 방식
thumbnailPath + "/" + filename
//템플릿 리터럴을 사용한 방식
`${thumbnailPath}/${filename}`
'JavaScript' 카테고리의 다른 글
[ JavaScript ] Lodash 라이브러리 사용해보기. (0) | 2022.12.02 |
---|---|
[ JavaScript ] 이메일 인증 화면 예제 (0) | 2022.11.30 |
[ JavaScript ] 게시판 만들기 예제 (2) | 2022.10.24 |
[JavaScript] 자식 창에서 부모 창으로 데이터 전송하기 (0) | 2022.10.22 |
[JavaScript] Web Notification 구현하기 (0) | 2022.10.06 |