76 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
title: Template Literals
 | 
						||
localeTitle: Литералы шаблонов
 | 
						||
---
 | 
						||
## Литералы шаблонов
 | 
						||
 | 
						||
## Введение:
 | 
						||
 | 
						||
Когда мы хотим использовать переменную для создания строки, она становится очень болезненной, поскольку мы должны использовать знак + для конкатенации и отслеживания кавычек.
 | 
						||
 | 
						||
Теперь с ES6 мы можем сделать строку с использованием обратных ссылок и с помощью заполнителей, которые обозначены знаком доллара и фигурными фигурными скобками, например $ {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:
 | 
						||
 | 
						||
Пожилой стиль:
 | 
						||
 | 
						||
Когда мы хотели разбить нашу строку на несколько строк, нам пришлось использовать обратную косую черту.
 | 
						||
 | 
						||
```javascript
 | 
						||
const multipleLineString= "We have \ 
 | 
						||
 multiple lines \ 
 | 
						||
 here"; 
 | 
						||
```
 | 
						||
 | 
						||
Теперь, когда мы хотим создать mutiline строку, мы можем использовать строки шаблонов. Мы можем окружить нашу строку обратными окнами. Этот подход чрезвычайно полезен, когда мы хотим создать динамическую разметку html.
 | 
						||
 | 
						||
```javascript
 | 
						||
const htmlMarkup = ` 
 | 
						||
 <html> 
 | 
						||
 <head></head> 
 | 
						||
 <title>Template string</title> 
 | 
						||
 <body>Hello World</body> 
 | 
						||
 </html>`; 
 | 
						||
```
 | 
						||
 | 
						||
## Вложение шаблонных строк:
 | 
						||
 | 
						||
Мы можем вложить их друг в друга.
 | 
						||
 | 
						||
```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>`; 
 | 
						||
```
 | 
						||
 | 
						||
Здесь оператор объединения после функции карты удаляет дополнительные запятые, которые добавляются после каждого li.
 | 
						||
 | 
						||
## Если утверждения и функции
 | 
						||
 | 
						||
Мы также можем использовать операторы If внутри строк шаблона.
 | 
						||
 | 
						||
```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>`; 
 | 
						||
```
 | 
						||
 | 
						||
В приведенном выше примере, если определен рождаемость, тогда создается div с содержимым «Он родился в году», иначе не было бы никакого div.
 | 
						||
 | 
						||
Мы также можем вызывать функции внутри строк шаблона. |