템플릿 리터널

ES6 이전에는 템플릿 문자열이라고 불렸지만 ES6부터는 템플릿 리터럴이라고 불리게 되었다.

1. 문자열 삽입

ES5 에서 문자열 삽입 방법

//문자열 삽입
//ES5
var name = "YJ";
var greeting = 'Hello my name is'+ name;

ES6 문자열 삽입 방법
ES6 에서 문자열 삽입은 백틱(₩)을 사용해서 할 수 있다.

//ES6
const greet = `Hello my name is ${name}`;

2. 표현식 삽입

ES5에서 표현식 삽입 방법

//표현식 삽입
//ES5
var a = 1;
var b = 15;
console.log('1 * 10 is '+(a*b));

ES6 표현식 삽입 방법
ES6에서는 백틱을 사용하여 삽입 할 수 있다.

//ES6
console.log(`1 * 10 is ${a * b}`);

3. 여러 줄 문자열 생성

ES5에서 여러 줄 문자열 생성

//여러 줄 문자열 생성
//ES5
const content = 'hello, \
my name is YJ \
what is your name?\ ';

ES6 여러 줄 문자열 생성 방법
ES6에서는 전체를 백틱으로 감싸면 된다.

const contentES6 = `hello,
my name is YJ
what is your name`;

4. 중첩 템플릿

템플릿 안에 템플릿을 중첩하는 것이 쉬워진다.

//중첩 템플릿
const person = [{
    name : 'ALL',
    age:27,
},{
    name : 'YJ',
    age : 25,
},{
    name : "LE",
    age : 39,
    likeColor : "red",
    others : ['mushrooms','instant soup'],
}];
const markup = `<ul> ${person.map(people => `<li> ${person.name} </li>`)} </ul>`;
console.log(markup);

5. 삼항 연산자 추가

템플릿 문자열 내에 로직을 쉽게 추가 가능하다.
? 앞의 조건이 true이면 첫번째 값이 반환되고, false면 : 뒤에 값이 반환된다.

//삼항연산자 (로직 쉽게 추가 가능)
const text = `<div> <p> ${person.name} is 
${person.age} years old ${person.likeColor ? `,
like color is ${person.likeColor}`: ''}</p></div>`;

6. 템플릿 리터럴에 함수 전달

템플릿 리터널에 함수를 전달할 수 있다.
p 태그에서 함수 groceryList를 호출 해 다른 모든 others를 인수로 전달했다.

function groceryList(others){
    return `<p>
        ${others.map
        ( other => ` <span>${other}</span>`).join('\n')} </p>`;}
<p>${groceryList(person.others)}</p>

7. 태그된 템플릿 리터럴

함수를 태그하여 템플릿 리터널을 실행하면 템플릿 내부에 있는 모든 항목이 태그된 함수의 인수로 제공된다.
함수 이름을 가져다가 실행할 템플릿 앞에 쓰면된다.

//태그된 템플릿 리터럴
function myTag(strings,personName,personAge){
    //strings : ["That ","is a","!"]
    let str = strings[1]; //is a
    let ageStr;
    personAge > 50 ? ageStr = "grandpa" : ageStr = "youngster";
    return personName + str + ageStr;
}
let sentence = myTag`That ${person} is a ${age}`;
console.log(sentence);
profile
풀스택 개발자를 꿈 꾸는 릭터입니다.

0개의 댓글