65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Destructuring Assignment
 | ||
| localeTitle: Назначение деструктуризации
 | ||
| ---
 | ||
| ## Назначение деструктуризации
 | ||
| 
 | ||
| Синтаксис присваивания Destructuring - это выражение Javascript, которое позволяет распаковывать значения или свойства из массивов или объектов.
 | ||
| 
 | ||
| Допустим, у вас есть массив, который содержит имя и фамилию, поскольку это два значения, но вы хотите переназначить эти значения на что-то более описательное. Для этого вы можете использовать Destructuring.
 | ||
| 
 | ||
| **ES5 Destructuring**
 | ||
| 
 | ||
| ```js
 | ||
| var fullName = ["John", "Smith"]; 
 | ||
|  var firstName = fullName[0]; 
 | ||
|  var lastName = fullName[1]; 
 | ||
|  
 | ||
|  console.log(firstName, lastName); // John Smith 
 | ||
| ```
 | ||
| 
 | ||
| **ES6 Destructuring**
 | ||
| 
 | ||
| ```js
 | ||
| const fullName = ["John", "Smith"]; 
 | ||
|  const [firstName, lastName] = fullName; 
 | ||
|  
 | ||
|  console.log(firstName, lastName); // John Smith 
 | ||
| ```
 | ||
| 
 | ||
| Приведенные выше примеры показывают преимущество использования назначения ES6 Destructuring Assignment.
 | ||
| 
 | ||
| Вы также можете использовать Destructuring для объектов с использованием аналогичного синтаксиса
 | ||
| 
 | ||
| ```js
 | ||
| const fullName = { first: "John", last: "Smith"}; 
 | ||
|  const {first, last} = fullName; 
 | ||
|  
 | ||
|  console.log(first, last); // John Smith 
 | ||
| ```
 | ||
| 
 | ||
| Object Destructuring Assignment немного отличается, потому что объект должен иметь свойства с именами, которые вы назначаете. Поэтому приведенный ниже код не будет работать так, как предполагалось.
 | ||
| 
 | ||
| ```js
 | ||
| const fullName = { first: "John", last: "Smith"}; 
 | ||
|  const {firstName, lastName} = fullName; 
 | ||
|  
 | ||
|  console.log(firstName, lastName); // undefined undefined 
 | ||
| ```
 | ||
| 
 | ||
| Вы все равно можете достичь желаемого результата, используя следующий синтаксис.
 | ||
| 
 | ||
| ```js
 | ||
| const obj = {propertyName: value} 
 | ||
|  {propertyName: desiredVariableName} = obj 
 | ||
| ```
 | ||
| 
 | ||
| Наш предыдущий пример был бы переписан следующим образом:
 | ||
| 
 | ||
| ```js
 | ||
| const fullName = { first: "John", last: "Smith"}; 
 | ||
|  const {first: firstName, last: lastName} = fullName; 
 | ||
|  
 | ||
|  console.log(firstName, lastName); // John Smith 
 | ||
| 
 | ||
| ``` |