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