728x90
๋ฐ์ํ
๐ก ์ค์ต ํฌ์ธํธ!
๐ ๋ค์ด๊ฐ๊ธฐ ์ ์
- Template literals ๋ JavaScript ์์ ๋ฌธ์๋ฅผ ๋ค๋ฃฐ ๋ ์ด๋ ค์ ๋ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ๋ฌธ๋ฒ์ด๋ค.
- ๋ฐ์ดํ ๋์ ์ backquote, backtick ( ` )์ด๋ผ๋ ๊ธฐํธ๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์๋ฅผ ๋ง๋ค๋ฉด ๋๋ค.
(ํค๋ณด๋ ์์ ๋ฌผ๊ฒฐ ๊ธฐํธ ์๋์ ์๋ค.)
๐ Template literals
๐ค ๋ฌธ์ ์ค๊ฐ์ ์ํฐํค ์ ๋ ฅ ๊ฐ๋ฅ
var ๋ฌธ์ = `
์๋
ํ์ธ์.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋
๋ฐ์์ค์
๋๋ค.
`;
- JavaScript ๋ฌธ์์ด์ ๋ฌธ์ ์ค๊ฐ์ ์ํฐํค๋ฅผ ์ฌ์ฉํด์๋ ์๋๋ค.
- ํ์ง๋ง backtick ์ผ๋ก ๋ฌธ์๋ฅผ ๋ง๋ ๋ค๋ฉด ์ํฐํค๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
๐ค ๋ฌธ์ ์ค๊ฐ์ ๋ณ์ ๋ฃ์ ๋ ํธ๋ฆฌ
var ๋ณ์1 = '๋ฐ์์ค';
var ๋ณ์2 = 'ํ๋ก ํธ์๋ ๊ฐ๋ฐ์'
var ๋ฌธ์1 = '์๋
ํ์ธ์! ' + ๋ณ์2 + '๋ฅผ ๊ฟ๊พธ๋ ' + ๋ณ์1 + '์
๋๋ค.';
var ๋ฌธ์2 = `์๋
ํ์ธ์! ${ ๋ณ์2 }๋ฅผ ๊ฟ๊พธ๋ ${ ๋ณ์1 }์
๋๋ค.`;
- JavaScript ์์ ๋ฌธ์ ์ค๊ฐ์ ๋ณ์๋ฅผ ๋ฃ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ ์ ์ฝ๋์ ๋ฌธ์1 ๊ณผ ๊ฐ์ด ๋ฌธ์์ด์ ์ชผ๊ฐ ๋ค์ + ๊ธฐํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ํ์ง๋ง backtick ์ ์ฌ์ฉํ๋ฉด ๋ณ์๊ฐ ํ์ํ ์์น์ ${ ๋ณ์๋ช } ๊ณผ ๊ฐ์ ํํ๋ก ์ฝ๊ฒ ๋ณ์๋ฅผ ๋ฃ์ด์ค ์ ์๋ค.
var ๋ณ์ = '๋ฐ์์ค';
var ๋ณ์2 = 'ํ๋ก ํธ์๋ ๊ฐ๋ฐ์'
var ํ
ํ๋ฆฟ = `
<div>
${ ๋ณ์2 } ${ ๋ณ์ }
</div>
`;
console.log(ํ
ํ๋ฆฟ); // <div> ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ฐ์์ค </div>
- ์ด๋ JavaScript ์์ ๋ณ์์ html ์ ๋ด์์ ์ฌ์ฉํ ๋์๋ ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ์ ๋ ๋ณด๋ค ํจ์ฌ ๋ณด๊ธฐ๊ฐ ํธํ๊ธฐ ๋๋ฌธ์ ์ ์ฉํ๋ค.
๐ Tagged template literals
- ES6 ๋ tagged template literals ๋ผ๊ณ ํด์ ํจ์๋ฅผ ํตํด ๋ฌธ์ ํด์ฒด๋ถ์๊ธฐ๋ฅ์ ๋ง๋ค ์๋ ์๋ค.
- ์ด๋ ๋ฌธ์ ์ค๊ฐ์ค๊ฐ์ ์๋ ๋จ์ด์ ์์๋ฅผ ๋ณ๊ฒฝํ๊ฑฐ๋ ๋จ์ด๋ฅผ ์ ๊ฑฐํ ๋, ํน์ ๋ณ์์ ์์น๋ฅผ ์ฎ๊ธธ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
๐ค ์ฌ์ฉ๋ฐฉ๋ฒ
function ํด์ฒด๋ถ์๊ธฐ(๋ฌธ์๋ค, ๋ณ์๋ค, ๋ณ์๋ค2){
console.log(๋ฌธ์๋ค);
console.log(๋ณ์๋ค);
console.log(๋ณ์๋ค2);
};
ํด์ฒด๋ถ์๊ธฐ`์๋
ํ์ธ์! ${ ๋ณ์2 }๋ฅผ ๊ฟ๊พธ๋ ${ ๋ณ์ }์
๋๋ค.`;
// ['์๋
ํ์ธ์! ', '๋ฅผ ๊ฟ๊พธ๋ ', '์
๋๋ค.', raw: Array(3)]
// ํ๋ก ํธ์๋ ๊ฐ๋ฐ์
// ๋ฐ์์ค
- ํด์ฒด๋ถ์๊ธฐ ํจ์์ ํ๋ผ๋ฏธํฐ๋ฅผ 2๊ฐ ์ถ๊ฐํด์ค ํ์ ์๊ดํธ ๋์ backtick ๊ธฐํธ๋ก ๊ฐ์ผ ๋ฌธ์์ด์ ๋ถ์ฌ์ ํจ์๋ฅผ ์คํํ๋ฉด ํด๋น ๋ฌธ์๋ฅผ ํด์ฒด๋ถ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
- ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ "๋ฌธ์๋ค"์ backtick ๊ธฐํธ๋ก ๊ฐ์ผ ๋ฌธ์์ด์์ ์์ํ ๋ฌธ์๋ง ๊ณจ๋ผ์ ์ด๋ฅผ Array ๋ก ๋ง๋ค์ด์ค๋ค.
(์ด ๋์ ๋ฌธ์๋ ${} ๊ธฐํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ ๋ฌธ์ ๋ฉ์ด๋ฆฌ๋ค์ ๋งํ๋ค.) - ๋๋ฒ์งธ ํ๋ผ๋ฏธํฐ์ธ "๋ณ์๋ค"์ backtick ๊ธฐํธ๋ก ๊ฐ์ผ ๋ฌธ์์ด์์ ${ } ๋ณ์๋ฅผ ๋ด์์ค๋ค.
(๋ณ์๊ฐ ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด ๋ค์ ๊ณ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.) - ์ด์ ์ด ํ๋ผ๋ฏธํฐ๋ค๋ก ์์ ๊ฐ์ด backtick ๊ธฐํธ๋ก ๊ฐ์ผ ๋ฌธ์์ด์ ์ฌ์กฐํฉํ๊ฑฐ๋ ๋ถ์์ด ๊ฐ๋ฅํ๋ค.
๐ค ์ฌ์ฉ์์
var ๋ณ์ = '๋ฐ์์ค';
var ๋ณ์2 = 'ํ๋ก ํธ์๋ ๊ฐ๋ฐ์'
function ํด์ฒด๋ถ์๊ธฐ2(๋ฌธ์๋ค, ๋ณ์๋ค, ๋ณ์๋ค2){
console.log(๋ณ์๋ค + ๋ฌธ์๋ค[1] + ๋ณ์๋ค2 + ๋ฌธ์๋ค[2] + " "+ ๋ฌธ์๋ค[0]);
};
ํด์ฒด๋ถ์๊ธฐ2`์๋
ํ์ธ์! ${ ๋ณ์2 }๋ฅผ ๊ฟ๊พธ๋ ${ ๋ณ์ }์
๋๋ค.`;
// ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ๋ฐ์์ค์
๋๋ค. ์๋
ํ์ธ์!
- ์์ ๊ฐ์ด ์๋ '์๋ ํ์ธ์! ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ๋ฐ์์ค์ ๋๋ค.' ์๋ ๋ฌธ๊ตฌ๋ฅผ ์ฌ์กฐํฉํ์ฌ 'ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ๋ฐ์์ค์ ๋๋ค. ์๋ ํ์ธ์!' ์ ๊ฐ์ด ์์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
var items1 = 20;
var items2 = 100;
function ํด์ฒด๋ถ์๊ธฐ3(๋ฌธ์๋ค, ...๋ณ์๋ค){
console.log(๋ฌธ์๋ค[0] + ๋ณ์๋ค[1] + ๋ฌธ์๋ค[1] + ๋ณ์๋ค[0] + ๋ฌธ์๋ค[2]);
};
ํด์ฒด๋ถ์๊ธฐ3`๋ฐ์ง๋ ${ items1 } ๊ฐ ์์ด์. ์๋ง์ ${ items2 } ๊ฐ ์์ด์.`;
// ๋ฐ์ง๋ 100 ๊ฐ ์์ด์. ์๋ง์ 20 ๊ฐ ์์ด์.
- ์๋๋ '๋ฐ์ง๋ 20 ๊ฐ ์์ด์. ์๋ง์ 100 ๊ฐ ์์ด์.' ๋ผ๋ ๋ฌธ๊ตฌ์ธ๋ฐ ๋ฐ์ง์ ์๋ง์ ์์๋ฅผ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํด์ ๋ฌธ์์ ์์น๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค.
var items3 = 100;
var items4 = 0;
function ํด์ฒด๋ถ์๊ธฐ4(๋ฌธ์๋ค, ...๋ณ์๋ค){
if (items4 === 0){
console.log(`์๋ง ๋ค ํ๋ ธ์ด์! ${๋ฌธ์๋ค[0]}${๋ณ์๋ค[0]}${๋ฌธ์๋ค[2]}`)
}
};
ํด์ฒด๋ถ์๊ธฐ4`๋ฐ์ง๋ ${ items3 } ์๋ง์ ${ items4 } ๊ฐ ์์ด์.`;
// ์๋ง ๋ค ํ๋ ธ์ด์! ๋ฐ์ง๋ 100 ๊ฐ ์์ด์.
- ์๋ '๋ฐ์ง๋ 100 ๊ฐ ์์ด์. ์๋ง์ 0 ๊ฐ ์์ด์.' ๋ผ๋ ๋ฌธ๊ตฌ์๋ค๋ฉด, ์๋ง์ด 0 ๊ฐ์ผ ๋ "์๋ง์ด ๋ค ํ๋ ธ์ด์!" ๋ผ๋ ๋ฌธ๊ตฌ๋ก ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด ์์ ๊ฐ์ด if ๋ฌธ์ ์์ฑํด์ ๋ฌธ์๋ฅผ ์์ ํด์ค ์๋ ์๋ค.
728x90
๋ฐ์ํ
'[๊ฐ๋ฐ] Practice > JavaScript ES6' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript / ES6] default parameter / arguments (0) | 2022.04.22 |
---|---|
[JavaScript / ES6] Spread Operator (0) | 2022.04.21 |
[JavaScript / ES6] ๋ณ์ ์ฐ์ต๋ฌธ์ ํ๊ธฐ (0) | 2022.04.11 |
[JavaScript / ES6] ๋ณ์ ์ ๋ฌธ๋ฒ ์ด์ ๋ฆฌํ๊ธฐ_2 (0) | 2022.04.11 |
[JavaScript / ES6] ๋ณ์ ์ ๋ฌธ๋ฒ ์ด์ ๋ฆฌํ๊ธฐ (0) | 2022.04.11 |