The Fun Way to Make Your Code Talk
In JavaScript, writing a string isn’t just saying "Hello" anymore…
Now, strings talk, dance, and even crack a joke 😎💃
Template Literals and Tagged Templates are the hidden superheroes of JS. Writing code without them is like trying to have your morning coffee without coffee — something will feel off ☕🤯
1️⃣ What Are Template Literals?
“Magic Backticks & JS Talking Strings”
Normal string:
const name = "Cansu";
console.log("Hello, " + name + "!");
- 😬 Boring, long, and a bit hard to read
- Using
+can sometimes lead to errors
With template literals:
const name = "Cansu";
console.log(`Hello, ${name}!`);
- 🎉 Shorter and cleaner
- Use
${…}to embed JS variables directly inside a string - Makes your eyes happy when reading 👀💖
Tip: You can embed any JS expression, not just variables:
console.log(`2 + 2 = ${2 + 2}`); // 2 + 2 = 4
2️⃣ Multiline Strings
“Say goodbye to line break headaches!”
Normal string:
console.log("This is line 1\nThis is line 2\nThis is line 3");
- Using
\nis old-fashioned and prone to mistakes 😅
With template literals:
console.log(`This is line 1
This is line 2
This is line 3`);
- No need for manual line breaks
- Cleaner and more readable code
- You can even add emojis for fun:
console.log(`😀 Line 1
🎉 Line 2
🚀 Line 3`);
3️⃣ Dynamic HTML / Message Templates
“JS makes HTML talk”
For frontend developers, this is mini magic 🧙♂️
const user = { name: "Cansu", age: 28, role: "Frontend Developer" };
const html = `
<div class="user-card">
<h2>${user.name}</h2>
<p>Age: ${user.age}</p>
<p>Role: ${user.role}</p>
</div>
`;
console.log(html);
- Embed dynamic data directly into strings
- Cleaner and more readable code
- Mini frontend wizardry ✨
Tip: For multi-line HTML or messages, template literals preserve indentation and formatting.
4️⃣ Tagged Templates
“Giving Superpowers to Strings”
Template literals don’t just join strings — tagged templates let you manipulate, process, and customize them 💪
function emphasize(strings, ...values) {
return strings.reduce((result, str, i) => {
return result + str + (values[i] ? `**${values[i]}**` : "");
}, "");
}
const name = "Cansu";
const age = 28;
const message = emphasize`Hello, I am ${name} and I am ${age} years old!`;
console.log(message);
// Hello, I am **Cansu** and I am **28** years old!
strings→ string partsvalues→${…}values- Result → string formatted any way you want
Tip: With tagged templates, you can:
- Add emojis
- Change uppercase/lowercase
- Log, validate, or localize strings
5️⃣ Fun Example: Emoji Message Template
function emoji(strings, ...values) {
return strings.reduce((acc, str, i) => acc + str + (values[i] ? `🔥${values[i]}🔥` : ""), "");
}
const task = "Learning JavaScript";
const status = "awesome";
const funMessage = emoji`Today, ${task} is really ${status}!`;
console.log(funMessage);
// Today, 🔥Learning JavaScript🔥 is really 🔥awesome🔥!
🎉 Now strings can express themselves, JS talks in a fun way!
- Code becomes more interactive
- Humor layer increases
- Every JS reader smiles 😎
6️⃣ Practical Tips & Out-of-the-Box Ideas
Embed expressions:
console.log(`5 + 5 = ${5 + 5}`); // 10
Call functions:
function shout(text) { return text.toUpperCase() + "!!!"; }
console.log(`Hello, ${shout("cansu")}`); // Hello, CANSU!!!
Localization / Date & Number formatting:
const price = 2500;
console.log(`Price: ${price.toLocaleString("en-US")}₺`); // Price: 2,500₺
Dynamic HTML + CSS:
const color = "red";
const html = `<p style="color: ${color}">This text is ${color}!</p>`;
Quick string debugging:
console.log(`DEBUG: variable=${variable}`);
7️⃣ Humorous Summary
Template Literals = JS’s talking strings
Tagged Templates = JS’s super powerful, humor-making strings
- Don’t use them → strings stay silent 😴
- Use them → code flows, readable, and fun 🎉
💡 Mini Challenge:
Create your own emoji message template with a tagged template and show your friends some JS humor 😎🔥
