Тёмный

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

АйТи Синяк
Подписаться 32 тыс.
Просмотров 19 тыс.
50% 1

Этим летом утвержден новый стандарт 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...
Поддержать Айти Синяка можно здесь:
RU-vid: / @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 сферы (социальные / технические), а также для тех кому короткая видео выжимка статьи, выступления на конференции или же просто личных мыслей, являются более удобным форматом

Опубликовано:

 

19 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 86   
@boldureans
@boldureans 10 месяцев назад
Язык становится более функциональным и декларативным. Спасибо за видео!
@alenache1
@alenache1 10 месяцев назад
по сути под капотом все старое, но код становится более гигиеничным и читаемым, это ОК)
@user-rb3sw3ku6t
@user-rb3sw3ku6t 6 месяцев назад
Спасибо за видео! Было познавательно!
@pavel.karpets
@pavel.karpets 10 месяцев назад
Фичи на границе между "а оно точно надо" и "неужели этого ещё не было в ecma script". Если это основные изменения релиза, то как то не густо
@it-sin9k
@it-sin9k 10 месяцев назад
Полностью согласен) совсем не густо) еле на видео насобирал)
@alexanderkomanov4151
@alexanderkomanov4151 10 месяцев назад
Тащусь от твоей подачи!
@it-sin9k
@it-sin9k 10 месяцев назад
Спасибо!)
@vadimmalckin589
@vadimmalckin589 9 месяцев назад
Молодец! Коротко и ясно👍
@user-ei6wy1ew9f
@user-ei6wy1ew9f 10 месяцев назад
Интересный видос. Спасибо за обзоры ) Коммент в поддержку продвижения
@TheTexPro
@TheTexPro 10 месяцев назад
Спасибо большое за познавательное видео!
@NoName-zh7cc
@NoName-zh7cc 8 месяцев назад
спасибо
@user-ku2hc3mr3m
@user-ku2hc3mr3m 10 месяцев назад
Спасибо за видео! Интересно было бы рассмотреть новые методы с точки зрения производительности
@clear-eyed-epiphany
@clear-eyed-epiphany 10 месяцев назад
Не забывайте, что ECMAScript это стандарт, а производительность зависит от реализации. Оптимизация одних и тех же фичей с течением времени изменяется и может отличаться в разных браузерах и на разных движках. Лучше самому научиться быстро проверять перфоменс выбранного решения, в работе это пригодится ещё не раз
@brightisrael1304
@brightisrael1304 10 месяцев назад
Спасибо. Как всегда очень информативно и лаконично
@it-sin9k
@it-sin9k 10 месяцев назад
Всегда приятно читать такие комментарии)
@bublik462
@bublik462 10 месяцев назад
Спасибки ))
@Solozon3
@Solozon3 10 месяцев назад
Как только узнал об этих методах, пошёл смотреть в полифилы в core-js, оказалось что они там есть) потом пошёл рефакторить наш код. Какое же удовольствие получаешь, когда переписываешь костыли с копированием и с реверсами в нормальный вид😊
@it-sin9k
@it-sin9k 10 месяцев назад
Вот это у вас хороший рабочий день вышел))
@Solozon3
@Solozon3 10 месяцев назад
@@it-sin9k пара часов на самом деле) чтоб написать регулярку и найти все места, которые потенциально можно отрефакторить
@Nikitosss91
@Nikitosss91 10 месяцев назад
Красава, Синяк
@vseuvoleny
@vseuvoleny 10 месяцев назад
Красиво
@samserios9367
@samserios9367 10 месяцев назад
with прям пушка!
@user-vk4si1oz7w
@user-vk4si1oz7w 10 месяцев назад
Один из моих любимых блогеров!
@it-sin9k
@it-sin9k 10 месяцев назад
Один из моих любимых комментариев)
@waldo_
@waldo_ 10 месяцев назад
Вначале кажется ошибка, все таки toReversed, а не toReserved. А в целом - спасибо за видео про новые методы)
@it-sin9k
@it-sin9k 10 месяцев назад
точно) блин) стыдоба)
@waldo_
@waldo_ 10 месяцев назад
@@it-sin9k захотелось подушнить)
@user-ru6qv3vp6p
@user-ru6qv3vp6p 10 месяцев назад
Комментарий в поддержку канала
@it-sin9k
@it-sin9k 10 месяцев назад
Мои любимые комментарии)))
@zhenia14
@zhenia14 10 месяцев назад
Сейчас уже середина лета, а это значит пришло время разобраться как данные передаются в js, по ссылке или по значению.
@it-sin9k
@it-sin9k 10 месяцев назад
Такую сложную задачу я бы на зиму оставил)
@HEX_CAT
@HEX_CAT 10 месяцев назад
❤❤❤
@alenache1
@alenache1 10 месяцев назад
кстати, заметил, что развитие иязыка пошло в сторону функциональщины, иммутабельности и т.д. Скоро, наверно, в нативное ядро тупо реакт засунут и все)
@it-sin9k
@it-sin9k 10 месяцев назад
ахахахах)
@alenache1
@alenache1 10 месяцев назад
@@it-sin9k не, а че) в свое время из jQuery кое-что в ядро зашили же) они же смотрят в своем ТС39 на боль людей и видят какими костылями пользуются.
@it-sin9k
@it-sin9k 10 месяцев назад
что требуют разработчики, то и дают))
@bukanaka
@bukanaka 10 месяцев назад
Ангуляр зашьют (шутка)
@dkoldyaev
@dkoldyaev 10 месяцев назад
@@bukanaka В Хром -- реакт, а в ФФ -- ангуляр, а в Сафари -- Вью. И добро пожаловать обратно в 2007й с приседаниями вокруг совместимости браузеров
@user-vc6mo5nl8g
@user-vc6mo5nl8g 10 месяцев назад
С конца можно найти еще быстрее. Через цикл for искать с конца массива ))
@it-sin9k
@it-sin9k 10 месяцев назад
While сила!) нужно быть стронг!)
@user-ni9tf5yr6m
@user-ni9tf5yr6m 10 месяцев назад
Классное видео, хоть js я не люблю
@ilikecola378
@ilikecola378 10 месяцев назад
Спасибо Синяк! Просто интересно кто еще завязан на IE? Гос сайты перешли на Яндекс браузер, так что не знаю даже зачем его еще поддерживать.
@it-sin9k
@it-sin9k 10 месяцев назад
Банкоматы на ИЕ поголовно))
@user-oc8js5gy1f
@user-oc8js5gy1f 10 месяцев назад
@@it-sin9k интересно, по какой причине..?
@de_vitalii
@de_vitalii 10 месяцев назад
you could use reduceRight to iterate array from the end.
@it-sin9k
@it-sin9k 10 месяцев назад
reduce iterates all items in the array even if you found the right one. So it is useless way :(
@Roman-of9pl
@Roman-of9pl 10 месяцев назад
findLast, findLastIndex и with - эти прям радуют! Ну, а про немутирующие методы пока не понятно. Наверное, тоже лишними не будут :)
@victormog
@victormog 10 месяцев назад
"Не понятно", потому что они именно *мутирующие...* 😉
@Roman-of9pl
@Roman-of9pl 10 месяцев назад
@@victormog нет.
@polioann
@polioann 10 месяцев назад
Есть ли какие-то выгоды при использовании WeakRef и WeakSet? Какие есть use кейсы?
@it-sin9k
@it-sin9k 10 месяцев назад
Для этого нужно делать отдельное видео) может и запишу)
@bukanaka
@bukanaka 10 месяцев назад
Наверное, когда нужна в каком-то конкретном месте коллекция огромных данных и после их использования они больше не нужны и могут быть удалены.
@mody-pq8kd
@mody-pq8kd 10 месяцев назад
Для первого примера уже давно придуманы циклы 😀
@it-sin9k
@it-sin9k 10 месяцев назад
писать только лень их) for и while уже давно не встречал в коде)
@mody-pq8kd
@mody-pq8kd 10 месяцев назад
@@it-sin9k зато выйти из них можно когда хочешь ;)
@artyomtaranenko2267
@artyomtaranenko2267 10 месяцев назад
А зачем клонить, разворачивать, если можно линейно пойти с конца и сделать ранний выход, всегда Ваш КЭП)
@it-sin9k
@it-sin9k 10 месяцев назад
вариант топ!) только лень писать эту логику))
@victormog
@victormog 10 месяцев назад
Циклом что ли? 😂
@it-sin9k
@it-sin9k 10 месяцев назад
@@victormog while сила!
@BearVodkaAndValenki
@BearVodkaAndValenki 10 месяцев назад
lastIndexOf
@Fodintsov
@Fodintsov 10 месяцев назад
@@BearVodkaAndValenki Не поможет при поиску по свойству в массиве объектов.
@virtuoz-ru
@virtuoz-ru 10 месяцев назад
Спасибо за напоминание что было и что стало.
@it-sin9k
@it-sin9k 10 месяцев назад
Всегда рад помочь :)
@Maxim9575
@Maxim9575 10 месяцев назад
Самое забавное для многих мутирующих методов можно сделать декоратор, который будет возвращать новый массив и для этого не нужно расширение ES.
@it-sin9k
@it-sin9k 10 месяцев назад
любые кастомные расширения методов несут за собой риски. А что если проект потом использоваться как микрофронтенд, а что если нужно, чтобы это работало в рамках сторибука и т.д. и т.п. Потом эти расширения нужно тащить везде за собой
@Maxim9575
@Maxim9575 10 месяцев назад
@@it-sin9k само-собой, тоже можно сказать про фреймворки, их тоже тащат из проекта в проект и что теперь не пользоваться? А так я лишь сказал что сделать аналоги мутирующих в не мутирующие достаточно тривиально.
@victormog
@victormog 10 месяцев назад
А пруфы есть, что findLast() под капотом не делает тоже самое - клонирование исходного массива, reverse и find()? Я сомневаюсь...
@it-sin9k
@it-sin9k 10 месяцев назад
даже если в самом худшем случае это и происходит, то это реализация сделана уже на плюсах, а не на JS. Что явно будет быстрее)
@victormog
@victormog 10 месяцев назад
@@it-sin9k Если так, то гуд, - я плюсы уважаю! Респект Страуструпу!!!
@Gruven
@Gruven 10 месяцев назад
А как при написании кода быстро понять иммутабельный метод или нет? Не залезая в mdn.
@it-sin9k
@it-sin9k 10 месяцев назад
открывать консоль и быстро тестить))
@BogdanPolonsky
@BogdanPolonsky 10 месяцев назад
просто запомнить)
@BogdanPolonsky
@BogdanPolonsky 10 месяцев назад
Чувствую себя ворчащим дедом, но каждый новый релиз ECMAScript встречаю закатыванием глаз.. Хочется чего-то нового и крутого, а то каждый год добавляют новые методы, которые делают то же самое что и до этого, но немного короче..
@it-sin9k
@it-sin9k 10 месяцев назад
ага) есть такое) я тоже все жду новинок) но только на React конфы вся надежда))
@user-nc8qy4sk2e
@user-nc8qy4sk2e 10 месяцев назад
По поводу findLast - чаще всего осуществляя поиск, заранее мы не знаем в начале или конце находится элемент, а если в середине? - в таком случае в дальнейшем обновлении findMiddle нужен, findPreLast и т.д. Выглядит как обновление ради обновления. Также как и то, что теперь не нужно следить за мутацией. Мне кажется лучше знать основу, что мутируется и почему и следить за этим, чем плодить методы и запоминать их...Выглядит как будто программисты становятся ленивее и разработчики стандартов это поддерживают. По мне ввели бы лучше нативный Object observer, что дало бы возможность отслеживать изменения объектов, позволило бы отойти от React, Angular и т.д. и писать на ванильном js. Вообщем как по мне с обновлениями копают не в ту сторону -_-
@BogdanPolonsky
@BogdanPolonsky 10 месяцев назад
Типа Proxy, но чтоб не создавать новый объект?
@user-nc8qy4sk2e
@user-nc8qy4sk2e 10 месяцев назад
@@BogdanPolonsky Да, именно. В какой то версии ES даже планировалось ввести (если не изменяет память Object.observe должен был появиться), но что то пошло не так.
@Fodintsov
@Fodintsov 10 месяцев назад
Чаще всего нужен первый элемент массива. Но иногда, весьма редко, нужно найти именно последний элемент. И дело не в том, чтобы найти его побыстрее, а чтобы найти последний из дублирующихся.
@rostislavpotapov7215
@rostislavpotapov7215 10 месяцев назад
Выглядит это все скчно. Выпускать новый стандарт каждый год такое себе
@a.osethkin55
@a.osethkin55 10 месяцев назад
действительно полезного в видео почти не было. понимаю, что это потому что изменений толком не было
@it-sin9k
@it-sin9k 10 месяцев назад
какой год такие и обновления :D
@user-zq2if8fg8c
@user-zq2if8fg8c 10 месяцев назад
про splice не очевидно и за это по рукам бить нужно
@it-sin9k
@it-sin9k 10 месяцев назад
не очевидно что именно?)
@javascript.frontend
@javascript.frontend 10 месяцев назад
топ
@Mark-wn4op
@Mark-wn4op 10 месяцев назад
arr.with(1,cc) === (arr[1]= "cc") ? Я правильно понимаю, что это сделано больше для удобства и повышения читаемости кода?
@it-sin9k
@it-sin9k 10 месяцев назад
разница в том, что с присвоением вы мутируете текущий массив, а с with вы создаете новый и его изменяете
Далее
The perfect plank !! 😱😱
00:19
Просмотров 2,8 млн
Полный курс по useId за 10 минут!
13:01
Все о React 19 за 10 минут
10:47
Просмотров 3,7 тыс.
The perfect plank !! 😱😱
00:19
Просмотров 2,8 млн