Деструктуризация объектов. Фундаментальный JavaScript

Поделиться
HTML-код
  • Опубликовано: 10 ноя 2024

Комментарии • 25

  • @bugaga8144
    @bugaga8144 2 года назад +1

    Очень круто, спасибо!

  • @olegsoul6016
    @olegsoul6016 3 года назад +22

    Сори, что вмешиваюсь, но есть просьба, когда даете примеры в темах, каждый раз сопровождайте их, пожалуйста, проверкой в консоли, чтобы наглядно было видно какой дает результат каждый пример, не только на словах, но и в консоли. Спасибо)

    • @mishanep
      @mishanep  3 года назад +7

      Спасибо за обратную связь. Учту.

  • @kitN
    @kitN Год назад

    Оставляю комментарий как того и ожидал Михаил))

  • @mavldr
    @mavldr Год назад

    Спасибо за видео ❤

  • @alexmaywether4640
    @alexmaywether4640 8 месяцев назад

    Отлично 👍

  • @ViktoriiaHarmony
    @ViktoriiaHarmony 3 года назад

    Спасибо за отличное объяснение!!!

  • @АдлетМуратов-о9ш
    @АдлетМуратов-о9ш 3 года назад

    Классные уроки👍

  • @archinewtontv1104
    @archinewtontv1104 2 года назад

    Огонь!

  • @GEO-le5ft
    @GEO-le5ft 2 года назад

    спасибо

  • @castiellblissful
    @castiellblissful 6 месяцев назад

    Здравствуйте!
    Подскажите, пожалуйста, в случае записи:
    let a, b;
    ( {a,b} = obj )
    Я правильно понимаю, что обязательно должно быть совпадение имён переменных и названий ключей нашего объекта?

    • @mishanep
      @mishanep  6 месяцев назад +1

      Да, но извлекая ключ по его названию, ему можно задать другое имя
      ( { propName: myCustomName } = obj )

    • @castiellblissful
      @castiellblissful 6 месяцев назад +1

      @@mishanep Cпасибо!
      Но разве в данном случае не создается переменная myCustomName?
      То есть, нам не нужно её заранее объявлять?

    • @castiellblissful
      @castiellblissful 6 месяцев назад

      Извиняюсь за беспокойство, сейчас протестировал, объявлять переменную всё равно нужно!
      Спасибо большое!

  • @svetlanaprus4817
    @svetlanaprus4817 3 года назад

    Михаил, спасибо еще раз за прекрасный урок! У меня вопрос: почему система не увидела неиспользованный ключ "b: 10" (строка кода nr.6), а в ...tail записала только "b: 2"?

    • @mishanep
      @mishanep  3 года назад +1

      Потому что ключ b со значением 10 является вложенным для ключа c (строка 4). А ключ с участвует в деструктуризации.

  • @annielindenberg8580
    @annielindenberg8580 2 года назад +1

    Здравствуйте! Подскажите пожалуйста чем можно заменить такую запись const { poster: {data: {attributes: {formats: {thumbnail: {url}}}}} } = movie; Хочется какое-то более оптимизированное решение, чем каждый раз писать такую длинную деструктуризацию

    • @mishanep
      @mishanep  2 года назад +1

      Ramda.js предоставляет отличный хэлпер path, куда можно передать список вложенных ключей и получить значение. А так, всегда можно пойти по пути дата-процессинга и предварительно обрабатывать полученную структуру, приводя её к более простой.

    • @annielindenberg8580
      @annielindenberg8580 2 года назад

      @@mishanep спасибо за ответ, а можно подробнее про дата процессинг? Может материалы какие-то или уроки есть?

    • @mishanep
      @mishanep  2 года назад

      @@annielindenberg8580 дата-процессинг в данном случае это конвертация данных. Вы пишите функцию-хэлпер, которая перебирает одну структуру данных и возвращает другую - упрощенную, часто с меньшим количеством полей. Но главное соответствующую api фронтенд приложения.
      Их можно писать как угодно. Мне нравится использовать для этого методы из ramda.js, по которой у меня есть отдельный плейлист.

    • @annielindenberg8580
      @annielindenberg8580 2 года назад

      @@mishanep спасибо большое, посмотрю

  • @pavelmelnik9952
    @pavelmelnik9952 3 года назад

    вернулся к этим видео, но так и не решил свою проблему. столкнулся с тем что мапил массив обьектов в реакте, и у каждого el возвращал компонент, условно , в который деструктурировал в провсах все его свойства. то есть, , но как выяснилось, в пропсах сидит [object object]. мучался долго, и по итогу так и не понял в чем же дело. причем, если поиспользовать эти пропсы в компоненте, то всё работает корректно

    • @mishanep
      @mishanep  3 года назад

      Павел, если будет ссылка на пример в песочнице, то проще будет ответить что-то по существу.

  • @eugenex8892
    @eugenex8892 Год назад

    Вот ты правильно сказал что диструкторизация очень тяжело дается, но не совсем в том контексте... Деструкторизация тяжело дается JS-у и повсеместно её не получится использовать, так как она дает очень жесткий удар по скорости выполнения кода. Я когда вижу джуна который для вытаскивания 1-2 значений использует деструкторизацию, обычно заварачиваю пулл реквест целиком с пометкой - очень медленный код. А вот так что-бы конкретно бесит, это использование её вместо, параметров функции - function hello({id, name, age}) {} hello({id: 1, name: "BadAss", age:-1}); Вот этим страдает дофига упоротых тапков которые насмотрятся видосов по реакту, а потом начинают вот жестко так говнокодить!

    • @ИванИванов-л7ю
      @ИванИванов-л7ю Год назад +1

      А чем вы аргументируете, что из за деструктуризации код становится очень медленным?