FAQ: Variables - String Interpolation

#1

This community-built FAQ covers the “String Interpolation” exercise from the lesson "Variables ".

Paths and Courses
This exercise can be found in the following Codecademy content:

Web Development

Introduction To JavaScript

FAQs on the exercise String Interpolation

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

#2

Why isn’t my interpolation working:
console.log(‘My name is {myName}. My favorite city is {myCity}.’);
The syntax looks right. It just prints the literal characters ${myName} without reading them as a variable.

It seems to be bugged. If I type it, the console doesn’t recognise the variable as a variable, but as a string. If I copy and paste it, it recognises it as a variable - even though, to me, it appears as the same text.

#4

A template literal is enclosed in back-ticks and interpolation is performed on expressions with the syntax, ${expression}.

#5

Thank you. I was missing the back-ticks, they look very similar to single quotation marks.

1 Like
#6

Why can’t we use template literals (``) all the time instead of normal string quotes ("" / ‘’)?

#7

We can use back ticks on all strings, with a few exceptions.

aString = `this is a valid string`
#8

I seem to be doing something wrong. I have used the correct syntax and the string just prints the name of the variable and the syntax. Where did I go wrong?

let myName = “Jess”;
let myCity = “Florence”;
console.log(My name is $(myName). My favourite city is $(myCity));

Thanks!

#9

I found my own mistake:

For those of you with a similar issue: the name of the variable needs be wrapped in curly braces {}, not round brackets ()

#10

Hey Guys I tried the whole String Interpolation-Thing.

I did this:

console.log(My name is ${myName}. My favorite City is ${myCity}.)

and get this notification:

Did you interpolate myName and myCity using back ticks and ${} ?

But at on the right side the right ‘text’ is showing?
Could that be a bug because I am using a german keyboard?

I will just click on ‘solution’ for now, because I think I got it right, but would be awesome if you could help me.

Greetz Jaschi

EDIT: As I can see there are now backticks shown, but I did them. There are shown on my screen when I type and edit stuff. Lol Wtf?

#11

why would you go through the trouble of adding the money sign and curly brackets when you could just use plus signs?
('My name is ’ + myName + ’ My favorite city is ’ + myCity);
the output is exactly the same. are there instances where the plus signs wont work and you have to us ${}?

#12

No. Both will work, but sometimes the 'bla bla' + 'bla bla (' + someVariable +') bla bla' OR
"bla bla " + someVariable + " bla 'direct quote' " + "bla bla" OR
using variables to build a path to a file: 'C:\'+someUser+'\'+someFolder+'\'+someSubFolder+'\'+someFileName
Can all be confusing. You can use the method you prefer, but you should be familiar with both. Also in JavaScript the \ is an escape character, so the code I wrote above would not produce the desired outcome. You could use double \\ 's to produce a \, or this:

`C:\${someUser}\${someFolder}\${someSubFolder}\${someFileName}`
1 Like
#13

Three things are made possible with this new syntax:

let backTick = `\` \``
let singleString = `
1. A single set of back ticks (${backTick}) to enclose the entire line. 
2. Direct interpolation of a variable, in place in the string.
3. The ability to write multiple lines in a single string.
`
console.log(singleString)
1. A single set of back ticks (` `) to enclose the entire line. 
2. Direct interpolation of a variable, in place in the string.
3. The ability to write multiple lines in a single string.

Apart from that there are other considerations.

  • No need to use standard quotes anywhere in the script. Back ticks can be used on all strings (with few possible exceptions).
  • Since the interpolation accepts all expressions, we can use template literals within the { }'s.
#14

wow, that actually makes a lot more sense now, thanks

1 Like