Template literals in Javascript - Time & Space Complexity
We want to understand how the time it takes to create strings using template literals changes as the input grows.
Specifically, how does the work grow when we build strings with many parts?
Analyze the time complexity of the following code snippet.
const parts = ["Hello", "world", "this", "is", "template", "literals"];
let message = "";
for (let i = 0; i < parts.length; i++) {
message = `${message} ${parts[i]}`;
}
console.log(message);
This code builds a message by adding each word from an array into a string using template literals inside a loop.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: Looping through the array and creating a new string each time by combining the old string with a new word.
- How many times: The loop runs once for each word in the array (n times).
Each time we add a word, the string gets longer, so combining takes more work.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 55 string operations |
| 100 | About 5050 string operations |
| 1000 | About 500,500 string operations |
Pattern observation: The work grows much faster than the number of words because each new string is longer than before.
Time Complexity: O(n²)
This means the time to build the string grows roughly with the square of the number of words.
[X] Wrong: "Adding words with template literals inside a loop always takes time proportional to the number of words (O(n))."
[OK] Correct: Each new string is longer, so combining strings inside the loop takes more and more time, making the total time grow faster than just the number of words.
Understanding how string building grows with input size helps you write efficient code and explain your choices clearly in interviews.
"What if we used an array to collect words and joined them once at the end? How would the time complexity change?"
Practice
template literals in JavaScript?Solution
Step 1: Understand what template literals do
Template literals allow embedding variables and expressions inside strings using${}.Step 2: Compare with other options
Creating arrays, defining functions, and commenting code are unrelated to template literals.Final Answer:
To easily insert variables and expressions inside strings -> Option DQuick Check:
Template literals = insert variables in strings [OK]
- Confusing template literals with arrays
- Thinking template literals define functions
- Using template literals for comments
Solution
Step 1: Identify the correct delimiter for template literals
Template literals use backticks (`), not single or double quotes.Step 2: Check the options
Only `Hello, ${name}!` uses backticks correctly around the string with ${name}.Final Answer:
`Hello, ${name}!` -> Option CQuick Check:
Backticks + ${} = template literal [OK]
- Using single or double quotes instead of backticks
- Forgetting to use ${} for variables
- Using angle brackets instead of quotes
const name = "Alice";
const age = 25;
console.log(`Name: ${name}, Age: ${age + 5}`);Solution
Step 1: Evaluate the expressions inside ${}
The variablenameis "Alice" andage + 5equals 30.Step 2: Combine the string with evaluated values
The template literal becomes "Name: Alice, Age: 30" when printed.Final Answer:
Name: Alice, Age: 30 -> Option AQuick Check:
Template literal evaluates expressions inside ${} [OK]
- Treating ${} as plain text
- Not evaluating expressions inside ${}
- Confusing string concatenation with template literals
const user = "Bob";
console.log('Hello, ${user}!');Solution
Step 1: Check string delimiters for template literals
Template literals require backticks (`), but single quotes are used here.Step 2: Understand effect of wrong quotes
Using single quotes treats ${user} as plain text, not variable substitution.Final Answer:
Using single quotes instead of backticks for template literal -> Option AQuick Check:
Backticks needed for ${} substitution [OK]
- Using single or double quotes instead of backticks
- Expecting ${} to work inside normal quotes
- Ignoring string delimiter rules
const name = "Eva"; const age = 28; // Choose the correct code to print: // Hello Eva, // You are 28 years old.
Solution
Step 1: Identify correct use of template literals and multi-line strings
Template literals allow multi-line strings directly without \n escape sequences.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.Final Answer:
console.log(`Hello ${name}, You are ${age} years old.`); -> Option BQuick Check:
Backticks allow multi-line strings and ${} substitution [OK]
- Using quotes instead of backticks for multi-line
- Using \n inside template literals unnecessarily
- Not substituting variables inside quotes
Ready to prove it?
Pass the test and this pattern moves unknown
