Bird
Raised Fist0
Javascriptprogramming~20 mins

Template literals in Javascript - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Template Literals Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of multiline template literal
What is the output of this code?
const message = `Hello\nWorld!`;
console.log(message);
Javascript
const message = `Hello\nWorld!`;
console.log(message);
AHello\nWorld!
B
Hello
World!
CHello World!
DHello\n World!
Attempts:
2 left
💡 Hint
Remember that template literals preserve new lines inside backticks.
❓ Predict Output
intermediate
2:00remaining
Embedding expressions in template literals
What will this code output?
const a = 5;
const b = 10;
console.log(`Sum is ${a + b}`);
Javascript
const a = 5;
const b = 10;
console.log(`Sum is ${a + b}`);
ASum is a + b
BSum is ${a + b}
CSum is 15
DSum is 510
Attempts:
2 left
💡 Hint
Expressions inside ${} are evaluated before being inserted.
❓ Predict Output
advanced
2:00remaining
Tagged template literal output
What is the output of this code?
function tag(strings, ...values) {
  return strings[0] + values.map(v => v * 2).join('') + strings[1];
}
const result = tag`Value: ${3} and ${4}`;
console.log(result);
Javascript
function tag(strings, ...values) {
  return strings[0] + values.map(v => v * 2).join('') + strings[1];
}
const result = tag`Value: ${3} and ${4}`;
console.log(result);
AValue: 68 and
BValue: 6 and 8
Cdna 86 :eulaV
DValue: 34 and 8
Attempts:
2 left
💡 Hint
Look at how strings and values arrays are combined in the tag function.
❓ Predict Output
advanced
2:00remaining
Nested template literals output
What will this code print?
const name = 'Alice';
const greeting = `Hello, ${`Ms. ${name}`}`;
console.log(greeting);
Javascript
const name = 'Alice';
const greeting = `Hello, ${`Ms. ${name}`}`;
console.log(greeting);
AHello, Ms. ${name}
BHello, Ms. Alice
CHello, Ms. Alice Alice
DHello, ${`Ms. ${name}`}
Attempts:
2 left
💡 Hint
Template literals can be nested and inner ones are evaluated first.
🧠 Conceptual
expert
2:00remaining
Why use tagged template literals?
Which of the following is a key reason to use tagged template literals in JavaScript?
ATo define variables inside template literals
BTo create multi-line strings without backticks
CTo evaluate expressions inside strings without ${}
DTo automatically escape HTML special characters in user input
Attempts:
2 left
💡 Hint
Tagged templates can process and transform template literal parts before output.

Practice

(1/5)
1. What is the main purpose of using template literals in JavaScript?
easy
A. To comment code
B. To create arrays
C. To define functions
D. To easily insert variables and expressions inside strings

Solution

  1. Step 1: Understand what template literals do

    Template literals allow embedding variables and expressions inside strings using ${}.
  2. Step 2: Compare with other options

    Creating arrays, defining functions, and commenting code are unrelated to template literals.
  3. Final Answer:

    To easily insert variables and expressions inside strings -> Option D
  4. Quick Check:

    Template literals = insert variables in strings [OK]
Hint: Remember backticks and ${} insert variables easily [OK]
Common Mistakes:
  • Confusing template literals with arrays
  • Thinking template literals define functions
  • Using template literals for comments
2. Which of the following is the correct syntax for a template literal in JavaScript?
easy
A. "Hello, ${name}!"
B. 'Hello, ${name}!'
C. `Hello, ${name}!`
D.

Solution

  1. Step 1: Identify the correct delimiter for template literals

    Template literals use backticks (`), not single or double quotes.
  2. Step 2: Check the options

    Only `Hello, ${name}!` uses backticks correctly around the string with ${name}.
  3. Final Answer:

    `Hello, ${name}!` -> Option C
  4. Quick Check:

    Backticks + ${} = template literal [OK]
Hint: Template literals always use backticks (`) [OK]
Common Mistakes:
  • Using single or double quotes instead of backticks
  • Forgetting to use ${} for variables
  • Using angle brackets instead of quotes
3. What will be the output of the following code?
const name = "Alice";
const age = 25;
console.log(`Name: ${name}, Age: ${age + 5}`);
medium
A. Name: Alice, Age: 30
B. Name: Alice, Age: 25 + 5
C. Name: ${name}, Age: ${age + 5}
D. Name: Alice, Age: 25

Solution

  1. Step 1: Evaluate the expressions inside ${}

    The variable name is "Alice" and age + 5 equals 30.
  2. Step 2: Combine the string with evaluated values

    The template literal becomes "Name: Alice, Age: 30" when printed.
  3. Final Answer:

    Name: Alice, Age: 30 -> Option A
  4. Quick Check:

    Template literal evaluates expressions inside ${} [OK]
Hint: Expressions inside ${} are calculated before output [OK]
Common Mistakes:
  • Treating ${} as plain text
  • Not evaluating expressions inside ${}
  • Confusing string concatenation with template literals
4. Find the error in the following code snippet:
const user = "Bob";
console.log('Hello, ${user}!');
medium
A. Using single quotes instead of backticks for template literal
B. Missing semicolon after console.log
C. Variable user is not declared
D. Incorrect use of console.log function

Solution

  1. Step 1: Check string delimiters for template literals

    Template literals require backticks (`), but single quotes are used here.
  2. Step 2: Understand effect of wrong quotes

    Using single quotes treats ${user} as plain text, not variable substitution.
  3. Final Answer:

    Using single quotes instead of backticks for template literal -> Option A
  4. Quick Check:

    Backticks needed for ${} substitution [OK]
Hint: Use backticks, not quotes, for variable substitution [OK]
Common Mistakes:
  • Using single or double quotes instead of backticks
  • Expecting ${} to work inside normal quotes
  • Ignoring string delimiter rules
5. You want to create a multi-line string that includes a user's name and age using template literals. Which code correctly achieves this?
const name = "Eva";
const age = 28;
// Choose the correct code to print:
// Hello Eva,
// You are 28 years old.
hard
A. console.log(`Hello ${name},\nYou are ${age} years old.`);
B. console.log(`Hello ${name}, You are ${age} years old.`);
C. console.log('Hello ${name},\nYou are ${age} years old.');
D. console.log("Hello ${name},\nYou are ${age} years old.");

Solution

  1. Step 1: Identify correct use of template literals and multi-line strings

    Template literals allow multi-line strings directly without \n escape sequences.
  2. Step 2: Check each option

    console.log(`Hello ${name}, You are ${age} years old.`); uses backticks and writes the string on two lines, correctly showing multi-line output with variable substitution.
  3. Final Answer:

    console.log(`Hello ${name}, You are ${age} years old.`); -> Option B
  4. Quick Check:

    Backticks allow multi-line strings and ${} substitution [OK]
Hint: Use backticks and press Enter for multi-line strings [OK]
Common Mistakes:
  • Using quotes instead of backticks for multi-line
  • Using \n inside template literals unnecessarily
  • Not substituting variables inside quotes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard