1-7 Handling Text - Strings in JavaScript - Learn Web Development - MDN
1-7 Handling Text - Strings in JavaScript - Learn Web Development - MDN
Just like we did with numbers, we are declaring a variable, initializing it with a string
value, and then returning the value. The only difference here is that when writing a
string, you need to surround the value with quotes.
2. If you don't do this, or miss one of the quotes, you'll get an error. Try entering the
following lines:
const badString1 = This is a test;
const badString2 = 'This is a test;
const badString3 = This is a test';
These lines don't work because any text without quotes around it is assumed to be a
variable name, property name, a reserved word, or similar. If the browser can't find it,
then an error is raised (e.g. "missing; before statement"). If the browser can see where
a string starts, but can't find the end of the string, as indicated by the 2nd quote, it
complains with an error (with "unterminated string literal"). If your program is raising
such errors, then go back and check all your strings to make sure you have no missing
quote marks.
3. The following will work if you previously defined the variable string — try it now:
const badString = string;
console.log(badString);
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings 2/7
12/06/2023, 15:57 Handling text — strings in JavaScript - Learn web development | MDN
console.log(sgl);
console.log(dbl);
2. There is very little difference between the two, and which you use is down to personal
preference. You should choose one and stick to it, however; differently quoted code
can be confusing, especially if you use two different quotes on the same string! The
following will return an error:
const badQuotes = 'What on earth?";
3. The browser will think the string has not been closed because the other type of quote
you are not using to contain your strings can appear in the string. For example, both of
these are okay:
const sglDbl = 'Would you eat a "fish supper"?';
const dblSgl = "I'm feeling blue.";
console.log(sglDbl);
console.log(dblSgl);
4. However, you can't include the same quote mark inside the string if it's being used to
contain them. The following will error, as it confuses the browser as to where the
string ends:
const bigmouth = 'I've got no right to take my place…';
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings 3/7
12/06/2023, 15:57 Handling text — strings in JavaScript - Learn web development | MDN
This works fine. You can escape other characters in the same way, e.g. \" , and there are
some special codes besides. See Escape sequences for more details.
Concatenating strings
Concatenate just means "join together". To join together strings in JavaScript you can use
a different type of string, called a template literal.
A template literal looks just like a normal string, but instead of using single or double quote
marks ( ' or " ), you use backtick characters ( ` ):
const greeting = `Hello`;
This can work just like a normal string, except you can include variables in it, wrapped
inside ${ } characters, and the variable's value will be inserted into the result:
const name = "Chris";
const greeting = `Hello, ${name}`;
console.log(greeting); // "Hello, Chris"
You can use the same technique to join together two variables:
const one = "Hello, ";
const two = "how are you?";
const joined = `${one}${two}`;
console.log(joined); // "Hello, how are you?"
Concatenation in context
Let's have a look at concatenation being used in action:
<button>Press me</button>
function greet() {
const name = prompt("What is your name?");
alert(`Hello ${name}, nice to see you!`);
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings 4/7
12/06/2023, 15:57 Handling text — strings in JavaScript - Learn web development | MDN
button.addEventListener("click", greet);
Press me
Here we're using the window.prompt() function, which asks the user to answer a question
via a popup dialog box then stores the text they enter inside a given variable — in this
case name . We then use the window.alert() function to display another popup containing a
string which inserts the name into a generic greeting message.
Concatenation using "+"
You can also concatenate strings using the + operator:
const greeting = "Hello";
const name = "Chris";
console.log(greeting + ", " + name); // "Hello, Chris"
You might expect this to return an error, but it works just fine. Trying to represent a string
as a number doesn't really make sense, but representing a number as a string does, so the
browser converts the number to a string and concatenates the two strings.
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings 5/7
12/06/2023, 15:57 Handling text — strings in JavaScript - Learn web development | MDN
If you have a numeric variable that you want to convert to a string but not change
otherwise, or a string variable that you want to convert to a number but not change
otherwise, you can use the following two constructs:
The Number() function converts anything passed to it into a number, if it can. Try the
following:
const myString = "123";
const myNum = Number(myString);
console.log(typeof myNum);
Conversely, every number has a method called toString() that converts it to the
equivalent string. Try this:
const myNum2 = 123;
const myString2 = myNum2.toString();
console.log(typeof myString2);
These constructs can be really useful in some situations. For example, if a user enters a
number into a form's text field, it's a string. However, if you want to add this number to
something, you'll need it to be a number, so you could pass it through Number() to handle
this. We did exactly this in our Number Guessing Game, in line 59 .
Multiline strings
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings 6/7
12/06/2023, 15:57 Handling text — strings in JavaScript - Learn web development | MDN
Template literals respect the line breaks in the source code, so you can write strings that
span multiple lines like this:
const output = `I like the song.
I gave it a score of 90%.`;
console.log(output);
/*
I like the song.
I gave it a score of 90%.
*/
To have the equivalent output using a normal string you'd have to include line break
characters ( \n ) in the string:
const output = "I like the song.\nI gave it a score of 90%.";
console.log(output);
/*
I like the song.
I gave it a score of 90%.
*/
See our Template literals reference page for more examples and details of advanced
features.
Conclusion
So that's the very basics of strings covered in JavaScript. In the next article, we'll build on
this, looking at some of the built-in methods available to strings in JavaScript and how we
can use them to manipulate our strings into just the form we want.
This page was last modified on May 16, 2023 by MDN contributors.
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings 7/7