Skip to main content

Command Palette

Search for a command to run...

Template Literals in JavaScript

Updated
3 min read
Template Literals in JavaScript

Introduction: The String Problem

When you start writing JavaScript, building strings feels straightforward. You use the + operator to glue pieces together

const name = "Purakhnath"; 
const msg = "Hello " + name + "!";

This works perfectly for small examples. But as your strings grow longer and more dynamic, something changes. The + operators multiply. Quotes start fighting with each other. Reading your code becomes like solving a puzzle.

Ask yourself

  • Why does this feel hard to read?

  • Is there a cleaner way?

There is. It's called Template Literals -> a modern approach that turns string building from mechanical assembly into natural writing.

The Problem with + Concatenation

Watch what happens when we add just one more variable

const name = "Purakhnath"; 
const age = 22;
const text = "My name is " + name + " and I am " + age + " years old.";

The issues

  • Four + operators breaking the flow

  • Quotes opening and closing constantly

  • One missing space creates "Purakhnathand" instead of "Purakhnath and"

As strings grow, this becomes mental overhead you don't need.

Template Literal Syntax

Template literals use backticks (`) instead of quotes

const text = `Hello world`;

That's it. Backticks replace your single or double quotes. Everything inside becomes a string.

Think of backticks as entering special string mode -> one that comes with extra powers built in.

Embedding Variables with ${}

This is where template literals shine. Instead of chopping and joining, you drop variables directly into your text

const name = "Purakhnath"; 
const age = 22;
const text = `My name is \({name} and I am \){age} years old.`;

How it works:

  • ${name} gets replaced with "Purakhnath"

  • ${age} gets replaced with 22

  • No + operators needed

  • No quote management

Before vs. After

// Before: Mechanical assembly
"My name is " + name + " and I am " + age + " years old."

// After: Natural writing
`My name is \({name} and I am \){age} years old.`

The second version reads like a sentence. The first reads like code fighting itself.

Multi-line Strings Made Simple

Old approach required escape characters

const msg = "Hello\nWelcome\nGood Morning";

With template literals, press Enter and write

const msg = `Hello
Welcome
Good Morning`;

What you type is what you get. No \n to remember. No broken visual flow.

A Real Use Case

Here's how you might build a product card in a real application

const product = "Wireless Headphones";
const price = 2999;

const html = `
<div class="card">
  <h3>${product}</h3>
  <p>₹${price}</p>
</div>
`;

The HTML structure stays perfectly readable. Variables sit exactly where they belong. No concatenation chaos.

Why Template Literals Matter

Without Template Literals With Template Literals
Multiple + operators Clean, readable text
Quote juggling Single pair of backticks
\n for new lines Natural line breaks
Harder to maintain Easier to update

Template literals reduce friction. You spend less energy assembling strings and more energy solving actual problems.

Summary

Template literals replace quotes with backticks and allow you to write strings more naturally.

You can insert variables directly using ${} without breaking the flow.

Multi-line text becomes simple and readable without escape characters.

Overall, your code becomes cleaner and much easier to understand.

More from this blog