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. Выражения и операторы
   120   121   122   123   124   125   126   127   128   129   130