code_notes
71 subscribers
136 photos
1 video
134 links
учусь делать веб

обратная связь: t.me/dmorenogogoleva
Download Telegram
code_notes pinned «what is hoisting when all variables declared anywhere in a scope are treated as if they're declared at the beginning of the scope»
code_notes pinned «what is closure closure is when a function remembers and continues to access variables from outside its scope, even when the function is executed in a different scope.»
code_notes
https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif отличная статья про ивент луп
https://www.jsv9000.app/
песочница для ивент-лупа, макротасок/микротасок
красивое

мой код для примера
console.log('first')

Promise.resolve().then(function promise() { console.log('second')})

setTimeout(function time() {console.log('third'), 5000})
async
асинхронная функция возвращает промис
отличия map от weakmap

ключи
map любого типа
weakmap только объекты

итерация и методы keys(), values(), entries()
map поддерживает
weakmap не поддерживает

это происходит пушто garbage collector удаляет из weakmap пары ключ-значение если на ключ (который очевидно объект) больше нет ссылок
поскольку garbage collector делает это довольно непредсказуемо, weakmap не поддерживает итерацию
отличия set от weakset

set данные любого типа
weakset только объекты

weakset не поддерживает итерации, size, keys()
code_notes pinned a photo
разница между атрибутами тега script (async/defer)

- порядок скриптов defer сохраняется браузером
- скрипт с defer сработает только после того как весь html документ будет обработан браузером
jwt token

содержит:
- header
- payload
- signature

header & payload — обычные json-объекты, их нужно закодировать через base64url

Закодированные части соединяются друг с другом, и на их основе вычисляется подпись, которая также становится частью токена
🔥1
реакт компонент перерендеривает своих детей если перерендеривается сам

pure-компонент перерендеривается только если у него изменились пропсы
отключить error overlay можно добавлением в webpack.dev.js:

  devServer: {
client: {
overlay: false,
},
🔥2