Skip to main content
Frontend is a free bonus on CodeMentor AI β€” the main product is Python. Register to save your progress and unlock all 290 Frontend lessons + 1,000+ Python lessons.Sign up β€” free
← ⚑ JavaScript & the browserΒ·Module C1 Β· Lesson 3
TaskDeclare const name set to 'Anna' and const age set to 30. Use a template literal to log: 'Anna is 30 years old.'

Template literals: strings that breathe

50 XP5 minFREE
Theory

Old strings vs template literals

Pre-2015 JavaScript only had "double" and 'single' quotes:

const name = "Anna";
const greeting = "Hello, " + name + "!";

Modern JavaScript adds backtick strings:

const name = "Anna";
const greeting = \`Hello, ${name}!\`;

Backticks let you:

  1. Embed expressions with ${ ... }. Any JavaScript expression works inside.
  2. Span multiple lines without escapes β€” no \n glue.
  3. Mix quote types freely inside without escaping.

When to use which

  • "double" for strings without interpolation. Quickest to type, least friction.
  • \backtick\ when you need interpolation or multiple lines.
  • 'single' is a style choice β€” pick one and stay consistent within a file. ESLint can enforce it.

Common newbie trap

You CAN put any expression inside ${ } β€” math, function calls, conditionals. That doesn't mean you should:

// readable
const total = items.reduce((s, i) => s + i.price, 0);
const msg = \`Total: $${total}\`;

// hard to read
const msg = \`Total: $${items.reduce((s, i) => s + i.price, 0)}\`;

Split heavy work onto its own line. Template literals are for *gluing* values, not *computing* them.

2 tabs
Live preview
console output appears here…
← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.