# ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด(Template Literal)
ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฌธ์์ด์ ์
๋ ฅํ๋ ๋ฐฉ์์
๋๋ค. ๊ธฐ์กด์๋ var str = 'Hello ES6'
์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ์์ผ๋ ES6์์๋ ๋ฐฑํฑ(back-tick)์ด๋ผ๋ ๊ธฐํธ(`)๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํฉ๋๋ค.
const str = `Hello ES6`;
์์ ๊ฐ์ด ๋ฐฑํฑ์ ์ด์ฉํ๊ฒ ๋๋ฉด ์ฌ๋ฌ ์ค์ ๊ฑธ์ณ ๋ฌธ์์ด์ ์ ์ํ ์๋ ์๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์๋ฅผ ๋ฌธ์์ด ์์ ๋ฐ๋ก ์ฐ๊ฒฐํ ์ ์๋ ์ด์ ์ด ์๊น๋๋ค.
# ์ฌ๋ฌ ์ค์ ๊ฑธ์ณ ๋ฌธ์์ด ์ ์ธํ๊ธฐ
๊ธฐ์กด ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์์ด ์ ์ธ ๋ฐฉ์์ธ ์์ ๋ฐ์ดํ(')์ ๋ฌธ์ ์ ์ ์๋์ ๊ฐ์์ต๋๋ค.
var str = 'Template literals are string literals allowing embedded expressions. \n' +
'You can use multi-line strings and string interpolation features with them. \n' +
'They were called "template strings" in prior editions of the ES2015 specification.';
์์ ๋ฐ์ดํ๋ฅผ ์ด์ฉํ์ฌ ๊ธด ๋ฌธ์์ด์ ์ ์ธํ๊ฒ ๋๋ฉด ์๋์ผ๋ก ๊ฐํ์ด ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ผ์ธ ๋ธ๋ ์ด์ปค(line breaker)์ธ \n
๋ฅผ ๊ฐํํ ๊ณณ ์ค๊ฐ ์ค๊ฐ์ ์ถ๊ฐํด์ผ ํ์ต๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ฌธ์ฅ์ด ๊ธธ๋ฉด ๊ธธ์๋ก +
์ \n
๋ฅผ ๊ณ์ ์ถ๊ฐํด์ค์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๊น๋๋ค.
๋ฐฑํฑ์ ์ด์ฉํด์ ๋ฌธ์์ด์ ์ ์ธํ๊ฒ ๋๋ฉด ์์ ๊ฐ์ด ๊ฐํํ ํ์๊ฐ ์์ต๋๋ค.
const str = `Template literals are string literals allowing embedded expressions.
You can use multi-line strings and string interpolation features with them.
They were called "template strings" in prior editions of the ES2015 specification.`;
๊ทธ๋ผ ๋ทฐ์์๋ ์์ ๋ฌธ๋ฒ์ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์์๊น์? CDN ๋ฐฉ์์ผ๋ก ๋ทฐ๋ฅผ ์ ์ฉํ ๋ ์ปดํฌ๋ํธ์ template ์์ฑ์ ์ ์ฉํ๋ฉด ์ข์ต๋๋ค. ์๋์ ๊ฐ์ด ๋ง์ ๋๋ค.
Vue.component('my-cmp', {
template: `
<div>
<h1>My Component</h1>
<p>back-tick is useful</p>
</div>
`
});
# ๋ฌธ์์ด ์ค๊ฐ์ ๋ณ์ ๋ฐ๋ก ๋์ ํ๊ธฐ
๊ธฐ์กด ๋ฌธ์์ด ์ ์ ๋ฐฉ์์์ ๋ ๋ฒ๊ฑฐ๋ก์ ๋ ๋ถ๋ถ์ ๋ฐ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ๋ณ์ ๊ฐ์ ๋ฌธ์์ด๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๋ถ๋ถ์ด์์ต๋๋ค.
var language = 'Javascript';
var expression = 'I love ' + language + '!';
console.log(expression); // I love Javascript!
์์ ๊ฐ์ด ๋ฌธ์์ด์ ํน์ ๋ณ์์ ๊ฐ์ ํจ๊ป ์ฌ์ฉํ๋ ค๋ฉด +
๋ฅผ ์ด์ฉํ์ฌ ๋ฌธ์์ด ์ค๊ฐ์ ํด๋น ๋ณ์๋ฅผ ์ฐ๊ฒฐํด์ค์ผ ํ์ต๋๋ค.
ES6์์๋ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ด์ฉํ๋ฉด ์๋์ ๊ฐ์ด ๊ฐํธํ๊ฒ ๋ฌธ์์ด๊ณผ ๋ณ์๋ฅผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
var language = 'Javascript';
var expression = `I love ${language}!`;
console.log(expression); // I love Javascript!
${}
๋ฅผ ์ด์ฉํ๋ฉด ์์ ๊ฐ์ด ๋ณ์์ ๊ฐ์ ๋์
ํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ฐ๋จํ ์ฐ์ฐ๋ ํ ์ ์์ต๋๋ค.
var language = 'Javascript';
var expression = `I love ${language.split('').reverse().join('')}!`;
console.log(expression); // I love tpircsavaJ!
์ ์ฝ๋๋ language
์ ๋ฌธ์์ด ์์๋ฅผ ์ญ์ผ๋ก ๋ฐ๊พธ๋ ์ฝ๋์
๋๋ค.
โ Spread Operator Destructuring โ