Skip to main content

Command Palette

Search for a command to run...

Template Literals in JavaScript

Published
4 min read
Template Literals in JavaScript

Working with strings is something you do all the time in JavaScript—displaying user names, building messages, logging data, or creating dynamic content.

For a long time, JavaScript relied on string concatenation, which worked, but often made code harder to read and maintain.

Then came template literals, a cleaner and more readable way to work with strings.


The Problem with Traditional String Concatenation

Before template literals, combining strings and variables looked like this:

let name = "Alex";
let age = 25;

let message = "My name is " + name + " and I am " + age + " years old.";

console.log(message);

This works, but it quickly becomes messy when:

  • There are many variables

  • The string is long

  • You need line breaks

For example:

let message = "User: " + name + " | Age: " + age + " | Status: Active";

It’s easy to lose track of spaces, quotes, and + operators. As the string grows, readability starts to suffer.


Template Literal Syntax

Template literals solve this problem by providing a cleaner syntax.

They use backticks ( ) instead of quotes.

Example:

let name = "Alex";
let age = 25;

let message = `My name is \({name} and I am \){age} years old.`;

console.log(message);

Instead of using +, we directly embed variables inside the string.

This makes the code feel more natural and easier to read.


Embedding Variables in Strings

The key feature of template literals is string interpolation.

You can insert variables using ${}.

Example:

let product = "Laptop";
let price = 50000;

let result = `The price of \({product} is ₹\){price}.`;

console.log(result);

Output:

The price of Laptop is ₹50000.

You can even include expressions:

let a = 5;
let b = 10;

console.log(`Sum is ${a + b}`);

Output:

Sum is 15

This removes the need for extra variables or concatenation.


Multi-line Strings

One of the biggest limitations of traditional strings was handling multiple lines.

Before template literals:

let text = "Hello\n" +
           "Welcome to JavaScript\n" +
           "Learning is fun!";

With template literals, multi-line strings become simple:

let text = `Hello
Welcome to JavaScript
Learning is fun!`;

console.log(text);

The formatting is preserved exactly as written.


Comparing Old vs Modern Approach

Traditional Way

let name = "Sam";
let message = "Hello " + name + ", welcome!";

Template Literal Way

let name = "Sam";
let message = `Hello ${name}, welcome!`;

The second version is:

  • Shorter

  • Easier to read

  • Less error-prone


Use Cases in Modern JavaScript

Template literals are widely used in modern JavaScript development.

1. Dynamic Messages

let user = "John";

console.log(`Welcome back, ${user}!`);

2. Building HTML

let title = "JavaScript";

let html = `<h1>${title}</h1>`;

console.log(html);

This is very common in frontend frameworks.


3. Logging Data

let score = 95;

console.log(`Your score is ${score}`);

4. Combining Multiple Values

let firstName = "John";
let lastName = "Doe";

console.log(`Full name: \({firstName} \){lastName}`);

Why Template Literals Matter

Template literals improve:

Readability

Code looks more like natural language.

Maintainability

Less clutter means easier updates.

Flexibility

You can embed variables and expressions directly.


Final Thoughts

Template literals are one of the simplest yet most impactful features in modern JavaScript. They replace clunky string concatenation with a cleaner and more intuitive approach.

Once you start using them, it becomes difficult to go back to the old way. Whether you’re building UI components, logging messages, or working with dynamic data, template literals make your code easier to read and write.

If you’re aiming to write clean, modern JavaScript, this is a feature you’ll use almost every day.