1. Template Literal


<aside> πŸ’‘ Syntax: λ¬Έμžμ—΄, λ¬Έμžμ—΄ ${ν‘œν˜„μ‹} λ¬Έμžμ—΄, tagλ¬Έμžμ—΄ ${ν‘œν˜„μ‹} λ¬Έμžμ—΄

</aside>

Template Literal은 λ¬Έμžμ—΄ 처리λ₯Ό μœ„ν•œ λ¦¬ν„°λŸ΄λ‘œμ¨ ν‘œν˜„μ‹μ„ 포함할 수 μžˆμŠ΅λ‹ˆλ‹€. 기쑴에 μš°λ¦¬κ°€ λ¬Έμžμ—΄ 사이에 λ™μ μœΌλ‘œ 변경될 λ³€μˆ˜κ°’μ„ λ„£μ–΄μ•Ό ν•œλ‹€κ³  ν•˜λ©΄ '였늘의 λ‚ μ§œλŠ”' + today + μž…λ‹ˆλ‹€.μ΄λŸ°μ‹μœΌλ‘œ+` μ—°μ‚°μœΌλ‘œ λ¬Έμžμ—΄ 결합을 ν•΄μ•Όν–ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, Template Literal 을 톡해 ν‘œν˜„μ‹μ΄ ν¬ν•¨λœ λ¬Έμžμ—΄μ²˜λ¦¬λ₯Ό ν•œ λ²ˆμ— ν•  수있게 λ©λ‹ˆλ‹€.

λ˜ν•œ, ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©° Template Literal을 λ°”λ‘œ νŒŒλΌλ―Έν„°λ‘œ λ„£μ–΄μ€„μˆ˜λ„ μžˆλŠ”λ° ν…œν”Œλ¦Ώ μ•ˆμ˜ ν‘œν˜„μ‹μ΄ μžˆλ‹€λ©΄ 평가가 된 κ²°κ³Όκ°€ νŒŒλΌλ―Έν„°λ‘œ λ„˜μ–΄κ°€κ²Œ λ©λ‹ˆλ‹€.

console.log(`ABC`);
const one = 1, two = 2;
const result = `1 +2λŠ” ${one + two}이 λœλ‹€.`;
console.log(result);
console.log(`1 +2λŠ”\\n ${one + two}이 λœλ‹€.`);

[μ‹€ν–‰ κ²°κ³Ό]

ABC

1 + 2λŠ” 3이 λœλ‹€.

1 +2λŠ” 3이 λœλ‹€.


2. tagged Template


ν…œν”Œλ¦Ώμ— ν•¨μˆ˜ 이름을 μž‘μ„±ν•œ ν˜•νƒœλ₯Ό tagged Template라 ν•˜λŠ”λ° μ—¬κΈ°μ„œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜λ₯Ό νƒœκ·Έν•¨μˆ˜(tag function)이라 λΆ€λ¦…λ‹ˆλ‹€.

  1. Templateμ—μ„œ λ¬Έμžμ—΄κ³Ό ν‘œν˜„μ‹μ„ λΆ„λ¦¬ν•©λ‹ˆλ‹€.

  2. "1 + 2 = "κ°€ λ¬Έμžμ—΄, ${one + two}κ°€ ν‘œν˜„μ‹μ΄λ©° ν‰κ°€κ²°κ³ΌλŠ” 3μž…λ‹ˆλ‹€.

  3. show()ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

  4. λ¬Έμžμ—΄μ„ λ°°μ—΄λ‘œ λ„˜κ²¨μ€λ‹ˆλ‹€. μ’ŒμΈ‘β†’μš°μΈ‘μœΌλ‘œ λ°°μ—΄ μ—˜λ¦¬λ¨ΌνŠΈλ‘œ μΆ”κ°€ν•˜λ©° λ§ˆμ§€λ§‰ 빈 λ¬Έμžμ—΄μ„ μ—˜λ¦¬λ¨ΌνŠΈλ‘œ μΆ”κ°€ν•©λ‹ˆλ‹€.

    β†’ 빈 λ¬Έμžμ—΄μ€ ν…œν”Œλ¦Ώμ—μ„œ μžλ™μœΌλ‘œ λ„˜κ²¨μ€€ κ°’μž…λ‹ˆλ‹€.

  5. ν‘œν˜„μ‹μ˜ 평가 κ²°κ³Όλ₯Ό λ„˜κ²¨μ€λ‹ˆλ‹€.

    β†’ show(["1 + 2 =", ""], 3)κ³Ό κ°™μŠ΅λ‹ˆλ‹€.

const one = 1, two = 2;
const show = (text, value) =>{
	console.log(`${text[0]}${value}`);
	console.log(text[1]);
};
show `1 + 2 = ${one + two}`;

[μ‹€ν–‰ κ²°κ³Ό]

1 + 2 = 3

""

κ·Έλ ‡λ‹€λ©΄, show ν•¨μˆ˜λ₯Ό 호좜 ν•  λ•Œ ν‘œν˜„μ‹μ΄ ν•˜λ‚˜κ°€ μ•„λ‹ˆλΌ λ‹€μˆ˜λΌλ©΄ μ–΄λ–»κ²Œ κ΅¬ν˜„μ„ ν•΄μ•Όν• κΉŒμš”? μœ„ 예제처럼 κ°„λ‹¨ν•œ ν…œν”Œλ¦Ώμ΄ μ•„λ‹Œ 쑰금 더 λ³΅μž‘ν•œ ν…œν”Œλ¦ΏμΌ κ²½μš°μ—λŠ” νƒœκ·Έ ν•¨μˆ˜μ— λŒ€μ‘ν•˜λŠ” νŒŒλΌλ―Έν„° 이름을 μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€.

const one = 1, two = 2;
const show = (text, plus, minus) =>{
	console.log(`${text[0]}${plus}`); // 1 + 2 = 3
	console.log(`${text[1]}${minus}`);//이고 1-2=-1
	console.log(`${text[2]}${text[3]}`);//이닀undefined
};
show `1 + 2 = ${one + two}이고 1-2λŠ”${one-two}μž…λ‹ˆλ‹€.`;

μ—¬κΈ°μ„œ ν•œ 걸음 더 λ‚˜μ•„κ°€ RestνŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•˜λ©΄ ν…œν”Œλ¦Ώμ˜ ν‘œν˜„μ‹μ„ μ’€ 더 μœ μ—°ν•˜κ²Œ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

const one = 1, two = 2;
const show = (text, ...rest) =>{
	console.log(`${text[0]}${rest[0]}`); // 1 + 2 = 3
	console.log(`${text[1]}${rest[1]}${text[2]}`);//이고 1-2=-1μž…λ‹ˆλ‹€.
};
show `1 + 2 = ${one + two}이고 1-2λŠ”${one-two}μž…λ‹ˆλ‹€.`;