Modern JS Cheatsheet / Памятка по современному JavaScript: Деструктуризация объектов и массивов
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
### Деструктуризация объектов и массивов wizjer 29.09.17 в 02:08 |
|
|
*Деструктуризация* — это удобный способ создавать новые переменные, напрямую получая значения из объектов или массивов. wizjer 29.09.17 в 02:14 |
||
|
На практике *деструктуризацию* можно использовать, чтобы присваивать переменные, разбивая на части параметры функции или *this.props* в React-проектах. wizjer 29.09.17 в 02:21 |
||
|
#### Объяснение с примером кода wizjer 29.09.17 в 02:21 |
||
|
- Объект wizjer 29.09.17 в 02:22 |
||
|
Давайте использовать во всех примерах следующий объект: wizjer 29.09.17 в 02:22 |
||
|
```js wizjer 29.09.17 в 02:23 |
||
|
Без деструктуризации wizjer 29.09.17 в 02:23 |
||
|
```js wizjer 29.09.17 в 02:24 |
||
|
С деструктуризацией всё поместится в одну строчку: wizjer 29.09.17 в 02:24 |
||
|
```js wizjer 29.09.17 в 02:25 |
||
|
console.log(age) // 35 -- Создана новая переменная age и ей присвоено значение, равное person.age wizjer 29.09.17 в 02:33 |
||
|
**Примечание:** В `const { age } = person;` скобки после ключевого слова *const* не используются для определения объекта или блока. Это синтаксис самой *деструктуризации*. wizjer 29.09.17 в 02:35 |
||
|
- Параметры функции wizjer 29.09.17 в 02:35 |
||
|
*Деструктуризация* часто используется, чтобы разбить на части параметры в функциях. wizjer 29.09.17 в 02:36 |
||
|
Без деструктуризации wizjer 29.09.17 в 02:36 |
||
|
```js wizjer 29.09.17 в 02:36 |
||
|
joinFirstLastName(person); // "Коля-Андреев" wizjer 29.09.17 в 02:37 |
||
|
Если деструктурировать параметр *person*, то функция выйдет куда короче: wizjer 29.09.17 в 02:47 |
||
|
```js wizjer 29.09.17 в 02:38 |
||
|
joinFirstLastName(person); // "Коля-Андреев" wizjer 29.09.17 в 02:47 |
||
|
Ещё удобнее использовать деструктуризацию со [стрелочными функциями](#arrow_func_concept): wizjer 29.09.17 в 02:48 |
||
|
```js wizjer 29.09.17 в 02:48 |
||
|
joinFirstLastName(person); // "Коля-Андреев" wizjer 29.09.17 в 02:48 |
||
|
- Массив wizjer 29.09.17 в 02:48 |
||
|
Давайте рассмотрим следующий массив: wizjer 29.09.17 в 02:59 |
||
|
```js wizjer 29.09.17 в 02:59 |
||
|
Без деструктуризации wizjer 29.09.17 в 02:59 |
||
|
```js wizjer 29.09.17 в 02:59 |
||
|
С использованием деструктуризации wizjer 29.09.17 в 02:59 |
||
|
```js wizjer 29.09.17 в 03:00 |
||
|
console.log(x) // "a" wizjer 29.09.17 в 03:00 |
||
|
#### Полезные ресурсы wizjer 29.09.17 в 03:01 |
||
|
- [Особенности ES6 - Деструктурирующее присваивание](http://es6-features.org/#ArrayMatching) wizjer 29.09.17 в 03:02 |
