Работа с массивами стала намного удобнее!

Поделиться
HTML-код
  • Опубликовано: 29 июн 2024
  • Этим летом утвержден новый стандарт ECMAScript 2023. И сегодня мы познакомимся с кучей новых методов для массивов!
    findLast, findLastIndex proposal - github.com/tc39/proposal-arra...
    toReversed, toSorted, toSpliced, with - github.com/tc39/proposal-chan...
    symbols as WeakMap key - github.com/tc39/proposal-symb...
    Hashbang Grammar - github.com/tc39/proposal-hash...
    Поддержать Айти Синяка можно здесь:
    RUclips: / @it-sin9k
    boosty: boosty.to/sin9k
    Patreon: / itsin9k
    00:00 Анонс темы
    00:37 findLast, findLastIndex
    02:32 toReversed
    03:49 toSorted
    04:07 Вспоминаем splice
    05:46 toSpliced
    06:05 with
    06:54 И другие плюшки
    07:16 Подписывайтесь!
    Подписаться на канал: / @it-sin9k
    Twitter: / it_sin9k
    -------------------------
    Данный канал создан для инициирования бесед на различные темы IT сферы (социальные / технические), а также для тех кому короткая видео выжимка статьи, выступления на конференции или же просто личных мыслей, являются более удобным форматом

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

  • @alenache1
    @alenache1 11 месяцев назад +18

    по сути под капотом все старое, но код становится более гигиеничным и читаемым, это ОК)

  • @boldureans
    @boldureans 11 месяцев назад +15

    Язык становится более функциональным и декларативным. Спасибо за видео!

  • @user-rb3sw3ku6t
    @user-rb3sw3ku6t 8 месяцев назад +1

    Спасибо за видео! Было познавательно!

  • @alexanderkomanov4151
    @alexanderkomanov4151 11 месяцев назад +3

    Тащусь от твоей подачи!

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      Спасибо!)

  • @pavel.karpets
    @pavel.karpets 11 месяцев назад +5

    Фичи на границе между "а оно точно надо" и "неужели этого ещё не было в ecma script". Если это основные изменения релиза, то как то не густо

    • @it-sin9k
      @it-sin9k  11 месяцев назад +2

      Полностью согласен) совсем не густо) еле на видео насобирал)

  • @user-ei6wy1ew9f
    @user-ei6wy1ew9f 11 месяцев назад +2

    Интересный видос.
    Спасибо за обзоры )
    Коммент в поддержку продвижения

  • @TheTexPro
    @TheTexPro 11 месяцев назад

    Спасибо большое за познавательное видео!

  • @NoName-zh7cc
    @NoName-zh7cc 9 месяцев назад

    спасибо

  • @vadimmalckin589
    @vadimmalckin589 11 месяцев назад

    Молодец! Коротко и ясно👍

  • @Solozon3
    @Solozon3 11 месяцев назад +4

    Как только узнал об этих методах, пошёл смотреть в полифилы в core-js, оказалось что они там есть) потом пошёл рефакторить наш код. Какое же удовольствие получаешь, когда переписываешь костыли с копированием и с реверсами в нормальный вид😊

    • @it-sin9k
      @it-sin9k  11 месяцев назад +1

      Вот это у вас хороший рабочий день вышел))

    • @Solozon3
      @Solozon3 11 месяцев назад

      @@it-sin9k пара часов на самом деле) чтоб написать регулярку и найти все места, которые потенциально можно отрефакторить

  • @brightisrael1304
    @brightisrael1304 11 месяцев назад +1

    Спасибо. Как всегда очень информативно и лаконично

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      Всегда приятно читать такие комментарии)

  • @user-ku2hc3mr3m
    @user-ku2hc3mr3m 11 месяцев назад +3

    Спасибо за видео! Интересно было бы рассмотреть новые методы с точки зрения производительности

    • @clear-eyed-epiphany
      @clear-eyed-epiphany 11 месяцев назад +2

      Не забывайте, что ECMAScript это стандарт, а производительность зависит от реализации. Оптимизация одних и тех же фичей с течением времени изменяется и может отличаться в разных браузерах и на разных движках. Лучше самому научиться быстро проверять перфоменс выбранного решения, в работе это пригодится ещё не раз

  • @bublik462
    @bublik462 11 месяцев назад

    Спасибки ))

  • @Nikitosss91
    @Nikitosss91 11 месяцев назад

    Красава, Синяк

  • @vseuvoleny
    @vseuvoleny 11 месяцев назад

    Красиво

  • @user-vk4si1oz7w
    @user-vk4si1oz7w 11 месяцев назад

    Один из моих любимых блогеров!

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      Один из моих любимых комментариев)

  • @zhenia14
    @zhenia14 11 месяцев назад +2

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

    • @it-sin9k
      @it-sin9k  11 месяцев назад +4

      Такую сложную задачу я бы на зиму оставил)

  • @alenache1
    @alenache1 11 месяцев назад +6

    кстати, заметил, что развитие иязыка пошло в сторону функциональщины, иммутабельности и т.д. Скоро, наверно, в нативное ядро тупо реакт засунут и все)

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      ахахахах)

    • @alenache1
      @alenache1 11 месяцев назад

      @@it-sin9k не, а че) в свое время из jQuery кое-что в ядро зашили же) они же смотрят в своем ТС39 на боль людей и видят какими костылями пользуются.

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      что требуют разработчики, то и дают))

    • @bukanaka
      @bukanaka 11 месяцев назад

      Ангуляр зашьют (шутка)

    • @dkoldyaev
      @dkoldyaev 11 месяцев назад

      @@bukanaka В Хром -- реакт, а в ФФ -- ангуляр, а в Сафари -- Вью. И добро пожаловать обратно в 2007й с приседаниями вокруг совместимости браузеров

  • @samserios9367
    @samserios9367 11 месяцев назад

    with прям пушка!

  • @waldo_
    @waldo_ 11 месяцев назад +4

    Вначале кажется ошибка, все таки toReversed, а не toReserved.
    А в целом - спасибо за видео про новые методы)

    • @it-sin9k
      @it-sin9k  11 месяцев назад +3

      точно) блин) стыдоба)

    • @waldo_
      @waldo_ 11 месяцев назад +1

      @@it-sin9k захотелось подушнить)

  • @user-ru6qv3vp6p
    @user-ru6qv3vp6p 11 месяцев назад

    Комментарий в поддержку канала

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      Мои любимые комментарии)))

  • @user-vc6mo5nl8g
    @user-vc6mo5nl8g 11 месяцев назад +1

    С конца можно найти еще быстрее. Через цикл for искать с конца массива ))

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      While сила!) нужно быть стронг!)

  • @virtuoz-ru
    @virtuoz-ru 11 месяцев назад

    Спасибо за напоминание что было и что стало.

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      Всегда рад помочь :)

  • @user-ni9tf5yr6m
    @user-ni9tf5yr6m 11 месяцев назад

    Классное видео, хоть js я не люблю

  • @HEX_CAT
    @HEX_CAT 11 месяцев назад

    ❤❤❤

  • @ilikecola378
    @ilikecola378 11 месяцев назад +2

    Спасибо Синяк! Просто интересно кто еще завязан на IE? Гос сайты перешли на Яндекс браузер, так что не знаю даже зачем его еще поддерживать.

    • @it-sin9k
      @it-sin9k  11 месяцев назад +1

      Банкоматы на ИЕ поголовно))

    • @user-oc8js5gy1f
      @user-oc8js5gy1f 11 месяцев назад

      @@it-sin9k интересно, по какой причине..?

  • @de_vitalii
    @de_vitalii 11 месяцев назад

    you could use reduceRight to iterate array from the end.

    • @it-sin9k
      @it-sin9k  11 месяцев назад +3

      reduce iterates all items in the array even if you found the right one. So it is useless way :(

  • @mody-pq8kd
    @mody-pq8kd 11 месяцев назад +1

    Для первого примера уже давно придуманы циклы 😀

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      писать только лень их) for и while уже давно не встречал в коде)

    • @mody-pq8kd
      @mody-pq8kd 11 месяцев назад

      @@it-sin9k зато выйти из них можно когда хочешь ;)

  • @Roman-of9pl
    @Roman-of9pl 11 месяцев назад

    findLast, findLastIndex и with - эти прям радуют! Ну, а про немутирующие методы пока не понятно. Наверное, тоже лишними не будут :)

    • @victormog
      @victormog 11 месяцев назад

      "Не понятно", потому что они именно *мутирующие...*
      😉

    • @Roman-of9pl
      @Roman-of9pl 11 месяцев назад

      @@victormog нет.

  • @Maxim9575
    @Maxim9575 11 месяцев назад

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

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      любые кастомные расширения методов несут за собой риски. А что если проект потом использоваться как микрофронтенд, а что если нужно, чтобы это работало в рамках сторибука и т.д. и т.п. Потом эти расширения нужно тащить везде за собой

    • @Maxim9575
      @Maxim9575 11 месяцев назад

      @@it-sin9k само-собой, тоже можно сказать про фреймворки, их тоже тащат из проекта в проект и что теперь не пользоваться?
      А так я лишь сказал что сделать аналоги мутирующих в не мутирующие достаточно тривиально.

  • @BogdanPolonsky
    @BogdanPolonsky 11 месяцев назад +1

    Чувствую себя ворчащим дедом, но каждый новый релиз ECMAScript встречаю закатыванием глаз.. Хочется чего-то нового и крутого, а то каждый год добавляют новые методы, которые делают то же самое что и до этого, но немного короче..

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      ага) есть такое) я тоже все жду новинок) но только на React конфы вся надежда))

  • @polioann
    @polioann 11 месяцев назад

    Есть ли какие-то выгоды при использовании WeakRef и WeakSet? Какие есть use кейсы?

    • @it-sin9k
      @it-sin9k  11 месяцев назад +1

      Для этого нужно делать отдельное видео) может и запишу)

    • @bukanaka
      @bukanaka 11 месяцев назад

      Наверное, когда нужна в каком-то конкретном месте коллекция огромных данных и после их использования они больше не нужны и могут быть удалены.

  • @artyomtaranenko2267
    @artyomtaranenko2267 11 месяцев назад +4

    А зачем клонить, разворачивать, если можно линейно пойти с конца и сделать ранний выход, всегда Ваш КЭП)

    • @it-sin9k
      @it-sin9k  11 месяцев назад +1

      вариант топ!) только лень писать эту логику))

    • @victormog
      @victormog 11 месяцев назад

      Циклом что ли?
      😂

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      @@victormog while сила!

    • @BearVodkaAndValenki
      @BearVodkaAndValenki 11 месяцев назад

      lastIndexOf

    • @Fodintsov
      @Fodintsov 11 месяцев назад

      @@BearVodkaAndValenki Не поможет при поиску по свойству в массиве объектов.

  • @user-nc8qy4sk2e
    @user-nc8qy4sk2e 11 месяцев назад

    По поводу findLast - чаще всего осуществляя поиск, заранее мы не знаем в начале или конце находится элемент, а если в середине? - в таком случае в дальнейшем обновлении findMiddle нужен, findPreLast и т.д. Выглядит как обновление ради обновления. Также как и то, что теперь не нужно следить за мутацией. Мне кажется лучше знать основу, что мутируется и почему и следить за этим, чем плодить методы и запоминать их...Выглядит как будто программисты становятся ленивее и разработчики стандартов это поддерживают. По мне ввели бы лучше нативный Object observer, что дало бы возможность отслеживать изменения объектов, позволило бы отойти от React, Angular и т.д. и писать на ванильном js. Вообщем как по мне с обновлениями копают не в ту сторону -_-

    • @BogdanPolonsky
      @BogdanPolonsky 11 месяцев назад

      Типа Proxy, но чтоб не создавать новый объект?

    • @user-nc8qy4sk2e
      @user-nc8qy4sk2e 11 месяцев назад

      @@BogdanPolonsky Да, именно. В какой то версии ES даже планировалось ввести (если не изменяет память Object.observe должен был появиться), но что то пошло не так.

    • @Fodintsov
      @Fodintsov 11 месяцев назад

      Чаще всего нужен первый элемент массива. Но иногда, весьма редко, нужно найти именно последний элемент. И дело не в том, чтобы найти его побыстрее, а чтобы найти последний из дублирующихся.

  • @victormog
    @victormog 11 месяцев назад

    А пруфы есть, что findLast() под капотом не делает тоже самое - клонирование исходного массива, reverse и find()?
    Я сомневаюсь...

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      даже если в самом худшем случае это и происходит, то это реализация сделана уже на плюсах, а не на JS. Что явно будет быстрее)

    • @victormog
      @victormog 11 месяцев назад

      @@it-sin9k Если так, то гуд, - я плюсы уважаю! Респект Страуструпу!!!

  • @Gruven
    @Gruven 11 месяцев назад

    А как при написании кода быстро понять иммутабельный метод или нет? Не залезая в mdn.

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      открывать консоль и быстро тестить))

    • @BogdanPolonsky
      @BogdanPolonsky 11 месяцев назад

      просто запомнить)

  • @rostislavpotapov7215
    @rostislavpotapov7215 11 месяцев назад +2

    Выглядит это все скчно. Выпускать новый стандарт каждый год такое себе

  • @a.osethkin55
    @a.osethkin55 11 месяцев назад

    действительно полезного в видео почти не было. понимаю, что это потому что изменений толком не было

    • @it-sin9k
      @it-sin9k  11 месяцев назад +3

      какой год такие и обновления :D

  • @user-zq2if8fg8c
    @user-zq2if8fg8c 11 месяцев назад

    про splice не очевидно и за это по рукам бить нужно

    • @it-sin9k
      @it-sin9k  11 месяцев назад

      не очевидно что именно?)

  • @javascript.frontend
    @javascript.frontend 11 месяцев назад

    топ

  • @Mark-wn4op
    @Mark-wn4op 11 месяцев назад

    arr.with(1,cc) === (arr[1]= "cc") ?
    Я правильно понимаю, что это сделано больше для удобства и повышения читаемости кода?

    • @it-sin9k
      @it-sin9k  11 месяцев назад +1

      разница в том, что с присвоением вы мутируете текущий массив, а с with вы создаете новый и его изменяете