Page 125 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 125
Деструктурирую щее п р исва и в а н и е
Нововведением ЕSб является деструктурирующее присваивание ( destructuring
assignment), позволяющее взять объект или массив и "деструктурировать" его на ин
дивидуальные переменные. Начнем с деструктуризации объекта.
11 обычный объект
const obj = { Ь : 2 , с : 3 , d : 4 } ;
/ / деструктурирующее присваивание объекта
const { а , Ь, с } = obj ;
а ; 1 1 undefined: в obj нет свойства "а "
Ь ; / / 2
с ; 1 1 3
d; / / ошибка ссWiки: "d " не определено
При деструктуризации объекта имена переменных должны соответствовать име
нам свойства объекта (при деструктуризации массива можно использовать любые
корректные имена переменных). В этом примере переменная а не соответствует
свойству в объекте, поэтому она получила значение undefined. Кроме того, посколь
ку в объявлении мы не определили переменную d, ей ничего не было присвоено.
В этом примере мы осуществляем объявление и присваивание в том же операто
ре. Деструктуризация объекта может быть осуществлена с помощью только одного
оператора присваивания, но его следует заключить в круглые скобки; в противном
случае JavaScript интерпретирует его левую сторону как блок.
const obj = { Ь : 2 , с : 3 , d : 4 } ;
let а , Ь , с ;
/ / это п р иведет к ошибке :
{ а , Ь , с } = obj ;
1 1 это сработает :
j
( { а , Ь , с } = ob ) ;
При деструктуризации массива вы можете назначить элементам массива любые
имена по своему усмотрению.
11 обычный ма ссив
const arr = [ 1 , 2 , 3 ] ;
/ / деструктурирующее п р исваивание массива
let [ х , у] = arr;
х ; 11 1
у; 11 2
z; 1 1 ошибка : z не бWia определена
В этом примере х присваивается значение первого элемента массива, а у - вто
рого; все остальные элементы, кроме этих, отбрасываются. Все остальные элементы
1 2 4 Глава 5. Выражения и операторы

