Тёмный

Узнай JavaScript лучше: Асинхронность в JS, Event loop, Call stack 

JAVA И SКРИПТЫ, ссылка на новый канал в описании
Просмотров 25 тыс.
50% 1

Узнай JavaScipt лучше: • Узнай JavaScript лучше...
Vue.js подробный курс: • Постигаем Vue js: урок...
Тайм коды:
0:00 - Что будет на этом уроке
0:45 - Особенности языка JavaScript
2:20 - Что такое call stack
3:48 - Работа call stack-а (Пример 1)
5:03 - Работа call stack-а (Пример 2)
6:42 - Асинхронность в JS (event loop)
10:26 - Eevent loop, интерактивная демонстрация
13:51 - Тестовое задание
Немного о данном курсе:
- В данном курсе мы разбираем темы, которые обычно вызывают трудности у новичков в js. На самом деле в них нет ничего сложного, и я попытаюсь максимально просто и кратко все объяснить.
- Информация для уроков была собрана исходя из авторитетных ресурсов в интернете, популярных видео уроков на ютубе, а также личного опыта. Я постарался все учесть и сделать видео максимально информативными.
- Уроки необязательно смотреть последовательно, я специально не добавлял в них нумерацию. Все зависит от уровня, на котором вы находитесь, либо от проблемы, с которой вы столкнулись. Но все же лучше просмотреть все видео, так вы точно будете уверены, что не пропустили какой-то важной темы ;)
#JavaScript #Web #Frontend

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

 

16 июл 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 88   
@k.kolomeitsev
@k.kolomeitsev 3 года назад
Хорошая визуализация, очень помогает понять, то о чем говорится в видео 👍
@yehorkarpenko6787
@yehorkarpenko6787 2 года назад
Мне кажется на ютубе это лучшее объяснение данной темы, только после него стали ясны многие вещи, автор капитальный красавчик.
@zbmcapital9966
@zbmcapital9966 3 года назад
Хороший разбор темы, если перед просмотром видео читаете комменты и думаете тратить ли время на просмотр данного ролика, из-за маленького кол-ва просмотров и подписчиков, то это лучшее разьяснение по этой теме которое я нашел на ютубе!
@yaroslavmartynov3673
@yaroslavmartynov3673 2 года назад
Ну не лучшее но очень четкое и краткое, спс.подписка.
@ashimov1970
@ashimov1970 2 года назад
полностью согласен! Превосходная подача материала
@dmytrozhytomyrsky8853
@dmytrozhytomyrsky8853 3 года назад
Прекрасный разбор основ асинхронности, подача и материал на высоте
@Ariadne.sThread
@Ariadne.sThread 2 года назад
Супер! Одно из лучших объяснений которые я смотрела. Задачку решила изначально неверно. Но потом разобралась что не так. Спасибо
@vadicus6534
@vadicus6534 3 года назад
Спасибо за видео, отличная подача. Особенно нравится что медленно, вдумчиво, без спешки и еще визуальные элементы эти помогают лучше понимать о чем речь и запоминать. Лайк и подписка однозначно. Желаю тебе дальнейшего развития канала)
@rostyslav5334
@rostyslav5334 3 года назад
Одно из лучших разьяснений, спасибо!
@maximhasp1
@maximhasp1 3 года назад
Отличное объяснение! Пожалуй даже лучше чем Владилен Минин объяснял Event loop.
@JohnDoe-yk6qq
@JohnDoe-yk6qq 2 года назад
Владилен мало чего объясняет хорошо
@catsapp
@catsapp 2 года назад
Да подписался на владилена , но там пошел сумбур
@user-nw6kz6zn3s
@user-nw6kz6zn3s 3 года назад
Спасибо, крутая подача материала!
@neprints
@neprints 3 года назад
Отличная подача материала, огромное спасибо
@garry007gorets7
@garry007gorets7 3 года назад
Красавчик! Спасибо за инфу, и наглядную подачу)
@user-zz7ny9cx6c
@user-zz7ny9cx6c 2 года назад
Спасибо большое за отличную подачу таких важных тем по js!!!
@admeliorem2136
@admeliorem2136 2 года назад
Очень доступное объяснение. Спасибо !
@IPoLiT161
@IPoLiT161 3 года назад
Коротко и ясно. Спасибо
@user-qq5vo5hn6x
@user-qq5vo5hn6x 3 года назад
Автор, спасибо вам, вы очень хорошо объяснили! После первых минут, понял что будет понятно!
@adeptusCustodius
@adeptusCustodius 3 года назад
Спасибо, было интересно!
@user-up9zq1nw4n
@user-up9zq1nw4n 2 года назад
Спасибо! Всё понятно)
@adilb8652
@adilb8652 2 года назад
Освяжил в памяти , спасибо)
@BrutalVirgin
@BrutalVirgin 2 года назад
Спасибо большое, стало понятней!
@const1525
@const1525 2 года назад
Большое спасибо за видео, отличная работа и голос.
@vitaliyyasinskiy3689
@vitaliyyasinskiy3689 3 года назад
Спасибо большое, завтра у меня собес на эту тему, надеюсь поможет, наглядно и доходчиво объяснил
@alsusayfulina1865
@alsusayfulina1865 Год назад
Очень понравилось твоё видео, чётко и по делу, спасибо!
@user-lr5xx8sl7l
@user-lr5xx8sl7l 3 года назад
Хорошо объяснил, прям разжевал, ставлю лойс!!!!
@goshana1987
@goshana1987 3 года назад
Максимально хорошо объяснили!!!
@mamina_kyrtka
@mamina_kyrtka 2 года назад
Самое понятное объяснение. Спасибо
@zbmcapital9966
@zbmcapital9966 3 года назад
Спасибо автору за труд, продолжай в том же духе. Уверен если будешь дальше стараться с таким качеством контента далеко пойдешь
@user-bq1vw5li5v
@user-bq1vw5li5v 2 года назад
Отличное объяснение!
@SemenAlexndrovich
@SemenAlexndrovich 3 года назад
Спасибо! Хорошо объяснили
@ashimov1970
@ashimov1970 2 года назад
Превосходная подача материала
@neprints
@neprints 3 года назад
start end timer1 timer3 timer2 Вроде так должно
@vazgensargsyan580
@vazgensargsyan580 3 года назад
timer1 timer3 timer2 зачем так? я думаю старт енд 1 2 3
@user-chf7z61vnd6h8v
@user-chf7z61vnd6h8v 3 года назад
@@vazgensargsyan580 сначала в коллстеке старт, енд, и два сеттаймаута в апи. Потом из апи в коллстек попадает первый сеттайм аут, вызывается. В нём выполняется timer 1, а timer 2 закидывается в апи из-за нового setTimeout, где уже ждет таймер 3. Далее в порядке очереди таймер 3 попадает в коллстек, за ним таймер 2. Итого: start, end, timer1, timer3, timer2
@googleadmin4749
@googleadmin4749 3 года назад
@@user-chf7z61vnd6h8v Спасибо
@maratfaizer
@maratfaizer Год назад
Лучше объяснение Event Loop, спасибо!
@romangoncharuk4455
@romangoncharuk4455 3 года назад
отлично сделан урок!
@user-chf7z61vnd6h8v
@user-chf7z61vnd6h8v 3 года назад
Как же это ах..но, чувак! Ты бог! Спасибо
@dmaberlin
@dmaberlin Год назад
Спасибо!
@andriikytsak170
@andriikytsak170 2 года назад
дякую))
@rokoss
@rokoss Год назад
Наконец то я понял этот эвентлуп
@user-rq8fp8fe2k
@user-rq8fp8fe2k 2 года назад
🔥🔥🔥
@sn9807
@sn9807 3 года назад
Этот комент для продвижения одного из самых понятных роликов ;)
@javas9164
@javas9164 3 года назад
Мой новый канал ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-mkqceyBXAdo.html Видео теперь будут тут 👆 === Тайм коды === 0:00 - Что будет на этом уроке 0:45 - Особенности языка JavaScript 2:20 - Что такое call stack 3:48 - Работа call stack-а (Пример 1) 5:03 - Работа call stack-а (Пример 2) 6:42 - Асинхронность в JS (event loop) 10:26 - Eevent loop, интерактивная демонстрация 13:51 - Тестовое задание Узнай JavaScipt лучше: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-bO881lHXieQ.html Vue.js подробный курс: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-qXhmJhR0Fhg.html
@Soap9613
@Soap9613 Год назад
Ты почему перестал видео снимать !?!?!?!? Уж будь добр вернуться!! Уж очень хорошо у тебя это выходит
@alexthree8331
@alexthree8331 2 года назад
Последняя задача. Вместо 'start', 'end', и 'timer', я написал 'обычный код и setTimeout'. И вывел это не во консоль, а на страницу, ответ будет такой же, но решение отличается так как рендеринг это третий шаг. А не сразу после выполнения кода. Обычный код 1. Обычный код 2. setTimeout 1. setTimeout 3. setTimeout 2. Вот такое вот решение: В стек попадает 'Обычный код 1' выполняется и удаляется из стека. setTimeout 1 - летит в Web API, где обрабатывается и после обработки добавляется в очередь Callback Queue и ждёт своей очереди на выполнение, когда Call Stack (основной стек) станет пустым, функция из очереди Callback Queue полетит в основной стек Call Stack. setTimeout 3 - летит в Web API, где обрабатывается и после обработки добавляется в очередь Callback Queue и ждёт своей очереди на выполнение, когда Call Stack (основной стек) станет пустым, функция из очереди Callback Queue полетит в основной стек Call Stack. В стек попадает 'Обычный код 2' выполняется и удаляется из стека. Теперь когда Call Stack (основной стек) пустой JS смотрит есть-ли микрозадачи. Микрозадач у нас нету, переходит к следующему этапу. Здесь рендеринг сраницы, показывает все изменения на экране. То есть выводит на экран 'Обычный код 1', 'Обычный код 2'. После рендеринга из Callback Queue очереди по одной добавляются макрозадачи в основную очередь Call Stack: В стек попадает setTimeout 1 и ждёт пока все внутренне функции у него отработают. В стек попадает output = 'setTimeout 1' выполняется и удаляется из стека. Дальше setTimeout 2 - летит в Web API, где обрабатывается и после обработки добавляется в очередь Callback Queue и ждёт своей очереди на выполнение, когда Call Stack (основной стек) станет пустым, функция из очереди Callback Queue полетит в основной стек Call Stack. После удаляется из стека setTimeout 1. Теперь когда Call Stack (основной стек) пустой JS смотрит есть-ли микрозадачи. Микрозадач у нас нету, переходит к следующему этапу. Здесь рендеринг сраницы, показывает все изменения на экране. То есть выводит на экран 'setTimeout 1'. В стек попадает setTimeout 3 и ждёт пока все внутренне функции у него отработают. В стек попадает output = 'setTimeout 3' выполняется и удаляется из стека. После удаляется из стека setTimeout 3. Теперь когда Call Stack (основной стек) пустой JS смотрит есть-ли микрозадачи. Микрозадач у нас нету, переходит к следующему этапу. Здесь рендеринг сраницы, показывает все изменения на экране. То есть выводит на экран 'setTimeout 3'. Далее у нас в стеке есть ещё setTimeout 2. В стек попадает setTimeout 2 и ждёт пока все внутренне функции у него отработают. В стек попадает output = 'setTimeout 2' выполняется и удаляется из стека. После удаляется из стека setTimeout 2. Теперь когда Call Stack (основной стек) пустой JS смотрит есть-ли микрозадачи. Микрозадач у нас нету, переходит к следующему этапу. Здесь рендеринг сраницы, показывает все изменения на экране. То есть выводит на экран 'setTimeout 2'.
@atlasua2021
@atlasua2021 3 года назад
Монтаж зачёт.
@nazarvasylyshun974
@nazarvasylyshun974 3 года назад
Более подробного и ясного объяснения на эту тему я еще не видел. Спасибо большое! И еще хотел уточнить, в Вашем задании. Первым выполниться timer 1 потом timer 3, а потому timer 2 потому что: в Web Api попадает первый таймер и выполняется там, потом попадает в очередь и так же таймер 3, и когда уже в стеке выполняется timer 1 то тогда он уже запускает timer 2 который попадает в Web Api и потом выполняется?)
@user-re8fu5kb1y
@user-re8fu5kb1y 9 месяцев назад
Все верно
@catsapp
@catsapp 2 года назад
Нормально
@user-si6pz1by1v
@user-si6pz1by1v 2 года назад
console.log( ' start ' ) setTimeout (function one() { console.log ( ' timer 1 ' ); setTimeout (function two() { console.log ( ' timer 2 ' ) }, 0) }, 1000) setTimeout (function tree() { console.log ( ' timer 3 ' ) }, 0) console.log ( ' end ' ) Здравствуйте! Добавил в setTimeout "1000" вместо "0" и получил в консоль : "start" "end" "timer 3" "timer 1" "timer 2 " но сайт latentflip (при таких же данных) выдает следующую последовательность : "start" "end" "timer 1" "timer 3" "timer 2 " объясните пожалуйста.
@dmitriy9152
@dmitriy9152 2 года назад
Спасибо за видео. Но, ничего не сказано про promise, разделение на микро и маркотаски, последовательность их выполнения.
@dimeliora
@dimeliora 3 года назад
Start End Timer1 Timer3 Timer2 Второй выведется последним, так как его setTimeout будет вызван через webAPI уже в процессе выполнения колбеков с timer 1 и 3. Отличный канал. С такой подачей информации вангую автору хорошую динамику роста популярности канала через какое-то время.
@javas9164
@javas9164 3 года назад
Все верно, молодец ;)
@HovoK
@HovoK 3 года назад
То есть в веб апи попадает ст1 потом ст3 а уже потом когда вызавится ст1 в веб апи попадет ст2 ?
@javas9164
@javas9164 3 года назад
Ага
@daniil7243
@daniil7243 2 года назад
А почему main.js является функцией?
@chkpg4317
@chkpg4317 3 года назад
микрозадачи и макрозадачи в пролёте да?
@Soap9613
@Soap9613 Год назад
Ты почему перестал видео снимать !!?!?!?!? А ну возвращайся!!
@vonderklaas
@vonderklaas 3 года назад
start end 1 3 2
@saibrok_
@saibrok_ 3 года назад
@JAVA И SКРИПТЫ Автор, а Филиппа Робертса не хочешь упомянуть в своем видео?
@vladstarikov88
@vladstarikov88 2 года назад
Кстати, да. Его ролик просто отличный. Большую работу парень проделал
@inzoddex8312
@inzoddex8312 3 года назад
Лучше объяснение стека в рунете
@amir18n
@amir18n Год назад
start end timer 1 timer 3 timer 2
@alexthree8331
@alexthree8331 2 года назад
Спасибо за видос но я нашёл ошибку. На 4:20 не правильно! console.log('start') и console.log('end') выполняются но не выводятся в консоль! Вернее они только в консоль выводятся но не на страницу. Они выполняются, дальше идёт следующий этап, когда Call Stack (основной стек) пустой JS смотрит есть-ли микро задачи. Микро задач у нас нету, переходит к следующему этапу. Здесь рендеринг страницы. Вот тут они выводятся в консоль и на страницу и куда-угодно! Перед тем как JS будет уже выводить макро задачи.
@alexthree8331
@alexthree8331 2 года назад
Если на страницу попробовать вставить: output.innerHTML += 'Обычный код 1.'; for(let i = 1; i
@kamol8861
@kamol8861 2 года назад
start, end, timer 1, timer 3, timer 2
@savannah633
@savannah633 2 года назад
start end timer 1 timer 2 timer 3 ?
@kamol8861
@kamol8861 2 года назад
после логирования timer 1, функция timer 2 добавляется конец очереди
@savannah633
@savannah633 2 года назад
@@kamol8861 спасибо за ваш ответ) я пересмотрю заново видео сразу как освободится время и вернусь к вашему комментарию~
@abdurahmonkarimov237
@abdurahmonkarimov237 2 года назад
start end timer1 timer3 timer2
@gotbenzoltsgraft3693
@gotbenzoltsgraft3693 Год назад
1 - Start, 2 - end , 3 - timer 1 , 4 - timer -2 , 5 - timer 3 Я ошибся, сначала таймер 3, а потом только таймер 2
@mariapopadiuk939
@mariapopadiuk939 2 года назад
console.log('start') setTimeout(() => { console.log('timer 1') }, 1000) setTimeout(() => { console.log('timer 2') }, 2000) setTimeout(() => { console.log('timer 3') }, 3000) console.log('end')
@user-ux7cj9rc2b
@user-ux7cj9rc2b 2 года назад
Читал про промисы.. Там говорится про очередь микро задач.. И очередь макро задач.. В этом видео ни слова про эти задачи..
@antonmas3451
@antonmas3451 Год назад
просто передрал до запятой филипа робертса...мда, контент однаако
@mike28121990
@mike28121990 3 года назад
Не доверяю людям которые не ставят ;
@stolyarovmaxim
@stolyarovmaxim 2 года назад
Такого копипастера мир не видел давно)
@user-uz8qg6hf8p
@user-uz8qg6hf8p 3 года назад
а промисы где? ставлю дизлайк
@kaltsdaniil8378
@kaltsdaniil8378 3 года назад
Ну за чем такую красивую картину портить?! Он же все афигенно объяснил... А промисы есть на канале.
@hi-tech4143
@hi-tech4143 3 года назад
setTimeout это и есть пример типичного промиса, так как выполнятся через WebAPI с использованием очереди, т.е. с задержкой после выполнения всех методов которые помещены в CallStack... Что вас не устраивает?
@kaltsdaniil8378
@kaltsdaniil8378 3 года назад
@@hi-tech4143 возможно он хотел увидеть методы промисов, за чем они нужны.
@maxfediushkin788
@maxfediushkin788 2 года назад
Некрасиво автор поступает. По сути это перевод объяснения Филиппа Робертса с конференции JSConf EU 2014. В том числе используется его тулза loupe. Но отсылки на источник нет. Тихо стырил и ушел называется нашел? И да, отписка "Информация для уроков была собрана исходя из авторитетных ресурсов в интернете" не является отсылкой к источнику.
@thecatwrites9731
@thecatwrites9731 2 года назад
допустим для меня я не смотрел эту конференцию и не знаю что и как, а мне нужно было понять что такое event loop и я очень благодарен что автор стырил это все у другого человека и по-русски обьяснил
@AntonioBenderas
@AntonioBenderas Год назад
start end 1 3 2
@nazarposhta
@nazarposhta 3 года назад
start end timer 1 timer 3 timer 2
Далее
13+ 2 серия
8:17
Просмотров 281 тыс.
Docker за 20 минут
21:42
Просмотров 67 тыс.
Что такое Event Loop за 20 минут!
20:37
Просмотров 1,8 тыс.
13+ 2 серия
8:17
Просмотров 281 тыс.