Frontend/JavaScript

[js] Template Literals, Tagged Templates

양원준 2024. 6. 13. 00:04
728x90

 

템플릿 리터럴은 ES6에서 도입된 기능으로 문자열을 더 쉽게 다룰 수 있게 해주는 문법이다.

 

 

템플릿 리터럴 도입 전

문자열 여러줄

const multiLine = "이것은 여러 줄에 걸쳐\n" +
                        "작성된 문자열입니다.";
console.log(multiLine);

 

문자열에 변수 포함

const name = 'yang';
const greeting = 'hello, ' + name + '!';
console.log(greeting); //hello, yang!

 

 

 

템플릿 리터럴(Template Literals)

템플릿 리터럴은 백틱(``)을 사용하여, 이전과 달리 아래와 같이 가독성 좋고, 간결하게 사용할 수 있게 되었다.

 

문자열 여러줄

const multiLine = `이것은 여러 줄에 걸쳐
작성된 문자열입니다.`;
console.log(multiLine);

 

문자열에 변수 포함

const name = 'yang';
const greeting = 'hello, ${name}!';
console.log(greeting); //hello, yang!

 

 

 

태그드 템플릿(Tagged Templates)

템플릿 리터럴의 고급 형태로, 템플릿 리터럴을 처리할 함수를 호출 가능하고, 문자 중간중간에 있는 단어 순서를 바꾸거나 변수를 제거하거나 할 때 유용하다.

  • 첫번째 매개변수에는 ${} 기호를 기준으로 양옆에 있는 모든 문자 덩어리를 Array안에 집어넣어주고
  • 두번째 매개변수부터는 변수를 담는다
let person = 'Yang';
let age = 26;

function tag(strings, ...rest) {   
    console.log(strings); // ['Hi,','is a','']
    console.log(rest[0]); // 'Yang'
    console.log(rest[1]); // 26
};

let output = tag`Hi, ${person} is a ${age}`;

 

 

 

 

 

728x90

'Frontend > JavaScript' 카테고리의 다른 글

[js] this (feat. arrow function)  (1) 2024.06.16
[js] 스코프와 클로저  (0) 2024.06.12
[js] 호이스팅과 TDZ  (0) 2024.05.26
[js] export default const가 안된다 : import, export  (0) 2024.05.07
[js] Ajax : fetch와 axios를 더한  (0) 2024.04.29