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.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Мы также можем вызывать функции внутри строк шаблона.
							 |