68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Template Literals
 | 
						|
---
 | 
						|
 | 
						|
## Template Literals
 | 
						|
 | 
						|
## Introduction:
 | 
						|
When we want to use variable to make a string, it becomes very painful as we have to use + sign to concatenate and keep track of quotes.
 | 
						|
 | 
						|
Now with ES6,We can make  string using backticks and using placeholders which are indicated with dollar sign and curly braces, like ${expression } .
 | 
						|
```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.
 | 
						|
```
 | 
						|
## MultiLine Strings:
 | 
						|
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";
 | 
						|
```
 | 
						|
Now when we want to create a mutiline 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 some dynamic html markup.
 | 
						|
```javascript
 | 
						|
const htmlMarkup = `
 | 
						|
<html>
 | 
						|
<head></head>
 | 
						|
<title>Template string</title>
 | 
						|
<body>Hello World</body>
 | 
						|
</html>`;
 | 
						|
```
 | 
						|
## Nesting of Template Strings:
 | 
						|
We can nest them inside of each other.
 | 
						|
```javascript
 | 
						|
const cities =[
 | 
						|
{name:'Delhi', year: 2010},
 | 
						|
{name:'Mumbai', year: 2015},
 | 
						|
{name:'Kolkata', year: 2017}];
 | 
						|
 | 
						|
 | 
						|
const markup = `
 | 
						|
<ul>
 | 
						|
${cities.map(city=>`<li>I lived in ${city.name} in the year ${city.year}</li>`).join('')}
 | 
						|
</ul>`;
 | 
						|
```
 | 
						|
Here the join operator after map function removes the extra commas which are added after each li.
 | 
						|
 | 
						|
## If statements and Functions 
 | 
						|
We can also use If statements inside the template strings.
 | 
						|
 | 
						|
```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>`;
 | 
						|
```
 | 
						|
 | 
						|
In the example above, if birthyear is defined, then div with contents  "He was born in the year" is generated otherwise there would be no div created.
 | 
						|
 | 
						|
We can also call functions inside the template strings.
 | 
						|
 | 
						|
 |