🧐 НЕ ИСПОЛЬЗУЙ ОБЪЕКТЫ JavaScript, ИСПОЛЬЗУЙ MAP ЧАЩЕ! (Map vs Object Javascript)
HTML-код
- Опубликовано: 8 июн 2024
- В данном ролике разберемся когда и для чего следует использовать коллекцию Map вместо объектов в языке JavaScript.
Рассмотрим преимущества и недостатки объектов, а также влияние динамического добавления и удаления полей объекта на производительность программы.
#programming #coding #программирование #frontend
#javascript #css #html #webdevelopment
🔥🔥🔥 Мой телеграм канал для коммьюнити и ваших предложений: t.me/danilabagrovit
Тайм коды:
00:00 Вступление
00:27 Чем отличается Map от Object в JS?
00:52 Первое преимущество Map и недостаткиObject
01:30 Используйте Map для хранения динамических пар ключ-значение
01:58 Использование Map vs Object в качестве хеш-таблицы
02:34 Подведение итогов - когда следует использовать Map
02:59 Спасибо за просмотр! - Наука
Осталось не забыть когда надо будет работать с чем-то подобным
5 лет во фронтенде и не знал об этом ! Спасибо ! Ждём новых роликов по этой тематике !
Спасибо большое! Рад стараться :)
Ну ема-ë!
Боитесь коллизий - напишите свою хеш-таблицу.
- Не оптимищировано? - потратьте неделю, напишите на плюсах.
Нет сотен и сотен тысяч пар ключь-значение - юзайте то, что вам удобно.
Очень крутая подача и самое главное без воды!
Интересно сравнить перфоманс в таких кейсах на фронтенде как общение с сервером. Нам часто приходится делать объекты с динамическими ключами и потом посылать на сервер в json-e, либо делать в локальном хранилище какой-то объект и туда добавлять/удалять/изменять ключи. Что будет быстрее в этом случае? Соблюдать иммутабельность, всегда создавать новый объект и потом делать json.stringify, либо использовать методы Map-a, но делать дополнительно Object.fromEntries перед конвертацией в json
Ну хз, 15 лет юзали, а теперь резко не кошерно стало. По мне ecma заигралась с в видением лишних сущностьей.
ещё бы синтаксис добавления/проверки у мапы сделали бы как у объектов -- совсем была бы красота.
и кстати. некоторые проводили бенчмарки и не выявили существенной прибавки скорости у мапы.
Можно ссылку на эти бенчмарки?)
Я даже больше скажу, мапа работает медленнее на чтение, парам пам пам
если у тебя нагрузка такая, что становтится видна разница в производительность объекта и мапы, стоит может помсмотреть в сторону другого языка? например той же джавы
не понятно как ты попал ко мне в реки со 188 подписчиками, но я стал твоим 189. классная подача, продолжай дальше
Спасибо большое!)
Блин, согласен! Тоже случайно попал в рекомендации.. Крайне приятная подача материала) желаю удачи в развитии канала! Буду твоим 455 подписчЕком👍
Сейчас неокрепшие умы насмотрятся и начнут везде Map пихать вместо обьектов где нужно и где не нужно, и если брать рядовые задачи, то чаще не нужно
Я как-то заикнулся одному знакомому верстальщику , почему он на гриды, вместо флексов не переходит . Так он чуть меня не покусал . Старшим ребяткам , сложно переходить на что-то новое . Вот и начинают ворчать
@@ferryterry1873 некоторые старшие ребятки просто знают что такое 'золотой молоток'
Лайк подписка без вариантов!
1. Map быстрее в добавлении/удалении
2. Позволяет работать с хеш-таблицами без багов
Именно так!
плз покажи как сделать в Vscode окошко с картинкой и питомцами
это просто расширение, название над ним же написано
VS code pets расширение)
У тебя слишком много свободного места на рабочем столе?
Бенчмарк для добавления элементов
Map x 1,675 ops/sec ±0.34% (99 runs sampled)
Object x 1,912 ops/sec ±0.33% (97 runs sampled)
Бенчмарк для доступа к элементам
Map x 5,021 ops/sec ±8.43% (96 runs sampled)
Object x 6,670 ops/sec ±4.45% (94 runs sampled)
Бенчмарк для удаления элементов
Map x 15,200 ops/sec ±6.47% (98 runs sampled)
Object x 6,347 ops/sec ±3.56% (96 runs sampled)
тебя не отвлекает окно со зверушками?
Это больше для зрителя, чтоб не скучал :) Когда работаю - обычно отключаю
Чувак ты просто выиграл эту жизнь
Почему...?)
Ще класна штука, що поля в мапі зберігаються в тому порядку в якому ви їх туда додали, а в об'єкті вони сортуються, тому якщо вам важливо порядок , то тільки мап
передай мапу в json)
Мне кажется проще будет написать плагин, который будет пробегаться по коду и при сборке приложения, там где надо подменять объекты на Map ))) , чем переучить JS разрабов перестать использовать объект.
Ахахахахах, сто процентов 🤣🤣🤣
Показал, что объект наследует методы базового объекта и сказал, что это влияет на производительность.👎
а оно по-вашему не влияет? если в новом объекте куча других полей еще дополнительно.
@@smertvichdreng почитайте о наследовании в js. В объекте есть только одна дополнительная ссылка, которая ведет на прототип.
@@puaktopblm Вы откройте инструменты разработчика и посмотрите что из себя представляет объект и чего туда еще понапихано.
@@smertvichdreng это аргумент к чему? Первый коммент говорит, что база не влияет, потому что она в прототипе, ты как это опровергаешь? "в объект чё только не понапихано"??? Как это отменяет тезис про прототип?
@@kosiak10851 говоришь очень путанно, сам-то понимаешь какой ты тезис хочешь доказать или опровергнуть? Что именно на производительность никак по-твоему не влияет? Или в чем твоя претензия?
Автор просто не в курсе, но проксировать экземпляр Map невозможно. Не надо тут затирать про Map во все дыры.
тоже хотел написать про это это. автор вообще не в курсе за жс так-то.
ерунда это все. объекты ничуть не уступают по скорости. объекты основа жс. так что используйте их смело. set довольно полезен как перфоманс штука. а вот map не особо полезен.
Map стоит использовать лишь в случае когда ты хочешь чтобы ключами у тебя были не строки, а допустим объекты, в остальном на мой взгляд с головой хватает обычного объекта.
Касательно Set, это набор уникальных значений и это нельзя ни к объектам ни к массивам прировнять, разные типы структур.
@@Maxim9575 set как хешмап, где ключ является одновременно значением, и уже из этого вытекает уникальность значений. использовать как массив с константным временем доступа.
@@user-jx9rw3ip6wset и реализует хеш таблицу, суть в том что в роли ключа выступает хеширующая функция, к которой доступа из js нет. Значение которое добавляется в set хешируется спец функцией, собственно хэш значения всегда вычисляется, поэтому доступ быстрый и константный по скорости