SlideShare a Scribd company logo
1 of 12
Download to read offline
ECMAScript 2015
by jbee
[ES6] 7. Template literal
console.log(`template literal`);
ES6에서문자열처리를보다간편하게 할수있는 템플릿 을제공한다. 문자열
처리를위해single quote나double quote가 아닌Backtick을사용한다. 변
수를 ${ } 로감싸서inline으로표현할수있으며n을작성할필요없이
Backtick 안에서개행을해주면된다. 기존의템플릿엔진들에서제공하고 있
었던기능인 ${ } 안에는 변수 또는 연산식 등의 표현식 이들어갈 수있
다.
Example code>
let name = "jbee";
//ES5
console.log("Hi, " + name + "!nHave a nice day!");
// console>
// Hi, jbee!
// Have a nice day!
//ES6
let grettingTemplate = `
Hi, ${name}!
Have a nice day!
`;
console.log(grettingTemplate);
//console>
// Hi, jbee!
// Have a nice day!
Template literal을사용하여거추장스러운 '+' 이나 'n' 을더이상사용
하지않아도된다.
tagged template
위템플릿리터럴을 tagged template 을사용하여 text 와 value 로분
리할수있다.  text 는공백문자를기준으로 배열 의형태로파라미터가 들
어오며, ${ } 안의표현식은 value 라는파라미터로 String type으로들
어온다.
let name = "jbee"
let num = 27;
console.log(`hi, ${name}! Have a nice day! ${num} is your numbe
//console> hi, jbee! Have a nice day! 27 is your number
parameter로넘겨지는 value 는하나인데, 템플릿리터럴에는표현식이두
개가 존재한다. 그렇기 때문에number에해당하는값이함수로넘겨지지못
했다.
function greet(text, value) {
console.log(text);
console.log(value);
console.log(typeof value);
}
greet `hi, ${name}! Have a nice day! ${num} is your number`
//console> [ 'hi, ', '! Have a nice day! ', ' is your number' ]
//console> jbee
//console> string
이렇게 해결할수있지만, 지난chapter에서다룬 Rest parameter 를사용
할수있다.
function greet(text, value, value2) {
console.log(text);
console.log(value);
console.log(value2);
}
greet `hi, ${name}! Have a nice day! ${num} is your number`
//console> [ 'hi, ', '! Have a nice day! ', ' is your number' ]
//console> jbee
//console> 27
function greet(text, ...value) {
console.log(text);
console.log(value);
}
greet `hi, ${name}! Have a nice day! ${num} is your number`
//console> [ 'hi, ', '! Have a nice day! ', ' is your number' ]
//console> [ 'jbee', 27 ]
템플릿리터컬의표현식값 결정
템플릿리터럴을사용하여문자열을함수의파라미터를넘길 수있을것이다.
그렇다면템플릿러터럴내부의표현식의값은언제결정될까?
// Assign expression statement
function greeting(message) {
let name = `ecmascript`;
console.log(message);
}
let name = `jbee`;
greeting(`Hi, ${name}`);
//console> Hi, jbee
함수의파라미터로넘겨질때부터결정되어넘어가기 때문에 greeting 이라
는함수내부에있는local variable인 ecmascript 라는단어가  name 으로
들어가지않고  jbee 라는문자열이 name 의값으로결정되었다.
즉, 호출시점에 ${} 값이결정된다.
7. end

More Related Content

More from Han JaeYeab

02. class in typescript
02. class in typescript02. class in typescript
02. class in typescriptHan JaeYeab
 
intro. typescript playground
intro. typescript playgroundintro. typescript playground
intro. typescript playgroundHan JaeYeab
 
[ES6] 11. Modularization, import와 export
[ES6] 11. Modularization, import와 export[ES6] 11. Modularization, import와 export
[ES6] 11. Modularization, import와 exportHan JaeYeab
 
[ES6] 10. Generator
[ES6] 10. Generator[ES6] 10. Generator
[ES6] 10. GeneratorHan JaeYeab
 
[ES6] 9. Iterator
[ES6] 9. Iterator[ES6] 9. Iterator
[ES6] 9. IteratorHan JaeYeab
 
[ES6] 5. Destructuring
[ES6] 5. Destructuring[ES6] 5. Destructuring
[ES6] 5. DestructuringHan JaeYeab
 
[ES6] 4. Spread, Rest parameter
[ES6] 4. Spread, Rest parameter[ES6] 4. Spread, Rest parameter
[ES6] 4. Spread, Rest parameterHan JaeYeab
 
[ES6] 3. iteration
[ES6] 3. iteration[ES6] 3. iteration
[ES6] 3. iterationHan JaeYeab
 
[ES6] 2. arrow function
[ES6] 2. arrow function[ES6] 2. arrow function
[ES6] 2. arrow functionHan JaeYeab
 
[ES6] 1. let과 const
[ES6] 1. let과 const[ES6] 1. let과 const
[ES6] 1. let과 constHan JaeYeab
 
클라우드 컴퓨팅에 대한 기본적인 이해
클라우드 컴퓨팅에 대한 기본적인 이해클라우드 컴퓨팅에 대한 기본적인 이해
클라우드 컴퓨팅에 대한 기본적인 이해Han JaeYeab
 

More from Han JaeYeab (15)

02. class in typescript
02. class in typescript02. class in typescript
02. class in typescript
 
01. basic types
01. basic types01. basic types
01. basic types
 
intro. typescript playground
intro. typescript playgroundintro. typescript playground
intro. typescript playground
 
[ES6] 12. Array
[ES6] 12. Array[ES6] 12. Array
[ES6] 12. Array
 
[ES6] 11. Modularization, import와 export
[ES6] 11. Modularization, import와 export[ES6] 11. Modularization, import와 export
[ES6] 11. Modularization, import와 export
 
[ES6] 10. Generator
[ES6] 10. Generator[ES6] 10. Generator
[ES6] 10. Generator
 
[ES6] 9. Iterator
[ES6] 9. Iterator[ES6] 9. Iterator
[ES6] 9. Iterator
 
[ES6] 8. Symbol
[ES6] 8. Symbol[ES6] 8. Symbol
[ES6] 8. Symbol
 
[ES6] 6. Class
[ES6] 6. Class[ES6] 6. Class
[ES6] 6. Class
 
[ES6] 5. Destructuring
[ES6] 5. Destructuring[ES6] 5. Destructuring
[ES6] 5. Destructuring
 
[ES6] 4. Spread, Rest parameter
[ES6] 4. Spread, Rest parameter[ES6] 4. Spread, Rest parameter
[ES6] 4. Spread, Rest parameter
 
[ES6] 3. iteration
[ES6] 3. iteration[ES6] 3. iteration
[ES6] 3. iteration
 
[ES6] 2. arrow function
[ES6] 2. arrow function[ES6] 2. arrow function
[ES6] 2. arrow function
 
[ES6] 1. let과 const
[ES6] 1. let과 const[ES6] 1. let과 const
[ES6] 1. let과 const
 
클라우드 컴퓨팅에 대한 기본적인 이해
클라우드 컴퓨팅에 대한 기본적인 이해클라우드 컴퓨팅에 대한 기본적인 이해
클라우드 컴퓨팅에 대한 기본적인 이해
 

[ES6] 7. Template literal