2018-12-10 01:57:40 +02:00
---
title: Template Literals
---
2019-02-07 18:31:59 +05:30
# Template Literals
2018-12-10 01:57:40 +02:00
2019-02-07 18:31:59 +05:30
## Introduction
When we want to use one or more variables to make a string, it becomes tedious as we have to use the '+' sign to concatenate and keep track of quotes.
2018-12-10 01:57:40 +02:00
Now with ES6, we can make the string using backticks. Then, insert the variable like this, `${variable}` .
```javascript
const name='John';
const city='London';
Older Style:
const sentence ='My name is '+ name +'. I live in '+ city.
ES6 way:
const sentence = `My name is ${name}. I live in ${city}` ;
Here ${name} and ${city} are going to be interpolated by the variable name and city respectively.
```
2019-02-07 18:31:59 +05:30
The main advantage of using template literals is that it increases code readability.
## MultiLine Strings
2018-12-10 01:57:40 +02:00
Older style:
When we wanted to span our string into multiple lines, we had to use backslashes.
```javascript
const multipleLineString= "We have \
multiple lines \
here";
```
2019-02-07 18:31:59 +05:30
Now when we want to create a multi-line string, we can make use of template strings. We can surround our string with backticks. This approach is extremely helpful when we want to create dynamic html markup.
2018-12-10 01:57:40 +02:00
```javascript
const htmlMarkup = `
< html >
< head > < / head >
< title > Template string< / title >
< body > Hello World< / body >
< / html > `;
```
2019-02-07 18:31:59 +05:30
## Nesting of Template Strings
2018-12-10 01:57:40 +02:00
We can nest them inside of each other.
```javascript
const cities =[
2019-02-07 18:31:59 +05:30
{name:'Delhi', year: 2010},
{name:'Mumbai', year: 2015},
{name:'Kolkata', year: 2017},
];
2018-12-10 01:57:40 +02:00
const markup = `
< ul >
${cities.map(city=>`<li>I lived in ${city.name} in the year ${city.year}</li>` ).join('')}
< / ul > `;
```
2019-02-07 18:31:59 +05:30
The join operator after the `map` function removes the extra commas which are added after each `li` .
2018-12-10 01:57:40 +02:00
2019-02-07 18:31:59 +05:30
## If Statements and Functions
We can also use `if` statements inside the template strings.
2018-12-10 01:57:40 +02:00
```javascript
const data = {name: 'John', city: 'London', birthyear: 1900};
const markup = `<div>${data.name} lives in ${data.city}. ${data.birthyear ? ` < div > He was born in the year ${data.birthyear}</ div > `:''}</div>` ;
```
2019-02-07 18:31:59 +05:30
In the example above, if `birthyear` is defined, then the `div` with contents "He was born in the year" is generated otherwise there would be no `div` created.
2018-12-10 01:57:40 +02:00
We can also call functions inside the template strings.