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

  Переглядів 24,410

JAVA И SКРИПТЫ, ссылка на новый канал в описании

JAVA И SКРИПТЫ, ссылка на новый канал в описании

День тому

Узнай 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

КОМЕНТАРІ: 88
@k.kolomeitsev
@k.kolomeitsev 3 роки тому
Хорошая визуализация, очень помогает понять, то о чем говорится в видео 👍
@yehorkarpenko6787
@yehorkarpenko6787 2 роки тому
Мне кажется на ютубе это лучшее объяснение данной темы, только после него стали ясны многие вещи, автор капитальный красавчик.
@zbmcapital9966
@zbmcapital9966 3 роки тому
Хороший разбор темы, если перед просмотром видео читаете комменты и думаете тратить ли время на просмотр данного ролика, из-за маленького кол-ва просмотров и подписчиков, то это лучшее разьяснение по этой теме которое я нашел на ютубе!
@yaroslavmartynov3673
@yaroslavmartynov3673 2 роки тому
Ну не лучшее но очень четкое и краткое, спс.подписка.
@ashimov1970
@ashimov1970 Рік тому
полностью согласен! Превосходная подача материала
@vadicus6534
@vadicus6534 2 роки тому
Спасибо за видео, отличная подача. Особенно нравится что медленно, вдумчиво, без спешки и еще визуальные элементы эти помогают лучше понимать о чем речь и запоминать. Лайк и подписка однозначно. Желаю тебе дальнейшего развития канала)
@irynayurieva5717
@irynayurieva5717 2 роки тому
Супер! Одно из лучших объяснений которые я смотрела. Задачку решила изначально неверно. Но потом разобралась что не так. Спасибо
@dmytrozhytomyrsky8853
@dmytrozhytomyrsky8853 3 роки тому
Прекрасный разбор основ асинхронности, подача и материал на высоте
@rostyslav5334
@rostyslav5334 3 роки тому
Одно из лучших разьяснений, спасибо!
@user-nw6kz6zn3s
@user-nw6kz6zn3s 3 роки тому
Спасибо, крутая подача материала!
@admeliorem2136
@admeliorem2136 2 роки тому
Очень доступное объяснение. Спасибо !
@user-qq5vo5hn6x
@user-qq5vo5hn6x 2 роки тому
Автор, спасибо вам, вы очень хорошо объяснили! После первых минут, понял что будет понятно!
@neprints
@neprints 3 роки тому
Отличная подача материала, огромное спасибо
@garry007gorets7
@garry007gorets7 3 роки тому
Красавчик! Спасибо за инфу, и наглядную подачу)
@neprints
@neprints 3 роки тому
start end timer1 timer3 timer2 Вроде так должно
@vazgensargsyan580
@vazgensargsyan580 3 роки тому
timer1 timer3 timer2 зачем так? я думаю старт енд 1 2 3
@user-chf7z61vnd6h8v
@user-chf7z61vnd6h8v 2 роки тому
@@vazgensargsyan580 сначала в коллстеке старт, енд, и два сеттаймаута в апи. Потом из апи в коллстек попадает первый сеттайм аут, вызывается. В нём выполняется timer 1, а timer 2 закидывается в апи из-за нового setTimeout, где уже ждет таймер 3. Далее в порядке очереди таймер 3 попадает в коллстек, за ним таймер 2. Итого: start, end, timer1, timer3, timer2
@googleadmin4749
@googleadmin4749 2 роки тому
@@user-chf7z61vnd6h8v Спасибо
@user-zz7ny9cx6c
@user-zz7ny9cx6c 2 роки тому
Спасибо большое за отличную подачу таких важных тем по js!!!
@IPoLiT161
@IPoLiT161 3 роки тому
Коротко и ясно. Спасибо
@zbmcapital9966
@zbmcapital9966 3 роки тому
Спасибо автору за труд, продолжай в том же духе. Уверен если будешь дальше стараться с таким качеством контента далеко пойдешь
@maximhasp1
@maximhasp1 3 роки тому
Отличное объяснение! Пожалуй даже лучше чем Владилен Минин объяснял Event loop.
@JohnDoe-yk6qq
@JohnDoe-yk6qq Рік тому
Владилен мало чего объясняет хорошо
@catsapp
@catsapp Рік тому
Да подписался на владилена , но там пошел сумбур
@BrutalVirgin
@BrutalVirgin 2 роки тому
Спасибо большое, стало понятней!
@adilb8652
@adilb8652 2 роки тому
Освяжил в памяти , спасибо)
@user-lr5xx8sl7l
@user-lr5xx8sl7l 3 роки тому
Хорошо объяснил, прям разжевал, ставлю лойс!!!!
@mamina_kyrtka
@mamina_kyrtka 2 роки тому
Самое понятное объяснение. Спасибо
@user-up9zq1nw4n
@user-up9zq1nw4n 2 роки тому
Спасибо! Всё понятно)
@const1525
@const1525 2 роки тому
Большое спасибо за видео, отличная работа и голос.
@adeptusCustodius
@adeptusCustodius 3 роки тому
Спасибо, было интересно!
@alsusayfulina1865
@alsusayfulina1865 Рік тому
Очень понравилось твоё видео, чётко и по делу, спасибо!
@vitaliyyasinskiy3689
@vitaliyyasinskiy3689 3 роки тому
Спасибо большое, завтра у меня собес на эту тему, надеюсь поможет, наглядно и доходчиво объяснил
@user-chf7z61vnd6h8v
@user-chf7z61vnd6h8v 2 роки тому
Как же это ах..но, чувак! Ты бог! Спасибо
@SemenAlexndrovich
@SemenAlexndrovich 2 роки тому
Спасибо! Хорошо объяснили
@ashimov1970
@ashimov1970 Рік тому
Превосходная подача материала
@goshana1987
@goshana1987 3 роки тому
Максимально хорошо объяснили!!!
@maratfaizer
@maratfaizer Рік тому
Лучше объяснение Event Loop, спасибо!
@user-bq1vw5li5v
@user-bq1vw5li5v 2 роки тому
Отличное объяснение!
@romangoncharuk4455
@romangoncharuk4455 3 роки тому
отлично сделан урок!
@dmaberlin
@dmaberlin Рік тому
Спасибо!
@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 роки тому
Ага
@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'.
@user-rq8fp8fe2k
@user-rq8fp8fe2k 2 роки тому
🔥🔥🔥
@javas9164
@javas9164 3 роки тому
Мой новый канал ukposts.info/have/v-deo/pZuil5uweY5yxaM.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 лучше: ukposts.info/have/v-deo/mn9pbGejf46axoU.html Vue.js подробный курс: ukposts.info/have/v-deo/qYiZoYCfiWZ3yZs.html
@Soap9613
@Soap9613 Рік тому
Ты почему перестал видео снимать !?!?!?!? Уж будь добр вернуться!! Уж очень хорошо у тебя это выходит
@andriikytsak170
@andriikytsak170 2 роки тому
дякую))
@sn9807
@sn9807 2 роки тому
Этот комент для продвижения одного из самых понятных роликов ;)
@rokoss
@rokoss Рік тому
Наконец то я понял этот эвентлуп
@nazarvasylyshun974
@nazarvasylyshun974 3 роки тому
Более подробного и ясного объяснения на эту тему я еще не видел. Спасибо большое! И еще хотел уточнить, в Вашем задании. Первым выполниться timer 1 потом timer 3, а потому timer 2 потому что: в Web Api попадает первый таймер и выполняется там, потом попадает в очередь и так же таймер 3, и когда уже в стеке выполняется timer 1 то тогда он уже запускает timer 2 который попадает в Web Api и потом выполняется?)
@user-re8fu5kb1y
@user-re8fu5kb1y 7 місяців тому
Все верно
@atlasua2021
@atlasua2021 2 роки тому
Монтаж зачёт.
@catsapp
@catsapp Рік тому
Нормально
@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, разделение на микро и маркотаски, последовательность их выполнения.
@daniil7243
@daniil7243 2 роки тому
А почему main.js является функцией?
@kamol8861
@kamol8861 2 роки тому
start, end, timer 1, timer 3, timer 2
@chkpg4317
@chkpg4317 3 роки тому
микрозадачи и макрозадачи в пролёте да?
@nazarposhta
@nazarposhta 2 роки тому
start end timer 1 timer 3 timer 2
@saibrok_
@saibrok_ 3 роки тому
@JAVA И SКРИПТЫ Автор, а Филиппа Робертса не хочешь упомянуть в своем видео?
@vladstarikov88
@vladstarikov88 2 роки тому
Кстати, да. Его ролик просто отличный. Большую работу парень проделал
@vonderklaas
@vonderklaas 2 роки тому
start end 1 3 2
@Soap9613
@Soap9613 Рік тому
Ты почему перестал видео снимать !!?!?!?!? А ну возвращайся!!
@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
@abdurahmonkarimov237
@abdurahmonkarimov237 2 роки тому
start end timer1 timer3 timer2
@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')
@savannah633
@savannah633 2 роки тому
start end timer 1 timer 2 timer 3 ?
@kamol8861
@kamol8861 2 роки тому
после логирования timer 1, функция timer 2 добавляется конец очереди
@savannah633
@savannah633 2 роки тому
@@kamol8861 спасибо за ваш ответ) я пересмотрю заново видео сразу как освободится время и вернусь к вашему комментарию~
@inzoddex8312
@inzoddex8312 3 роки тому
Лучше объяснение стека в рунете
@gotbenzoltsgraft3693
@gotbenzoltsgraft3693 Рік тому
1 - Start, 2 - end , 3 - timer 1 , 4 - timer -2 , 5 - timer 3 Я ошибся, сначала таймер 3, а потом только таймер 2
@user-ux7cj9rc2b
@user-ux7cj9rc2b 2 роки тому
Читал про промисы.. Там говорится про очередь микро задач.. И очередь макро задач.. В этом видео ни слова про эти задачи..
@mike28121990
@mike28121990 3 роки тому
Не доверяю людям которые не ставят ;
@antonmas3451
@antonmas3451 11 місяців тому
просто передрал до запятой филипа робертса...мда, контент однаако
@user-uz8qg6hf8p
@user-uz8qg6hf8p 3 роки тому
а промисы где? ставлю дизлайк
@kaltsdaniil8378
@kaltsdaniil8378 3 роки тому
Ну за чем такую красивую картину портить?! Он же все афигенно объяснил... А промисы есть на канале.
@hi-tech4143
@hi-tech4143 3 роки тому
setTimeout это и есть пример типичного промиса, так как выполнятся через WebAPI с использованием очереди, т.е. с задержкой после выполнения всех методов которые помещены в CallStack... Что вас не устраивает?
@kaltsdaniil8378
@kaltsdaniil8378 3 роки тому
@@hi-tech4143 возможно он хотел увидеть методы промисов, за чем они нужны.
@stolyarovmaxim
@stolyarovmaxim Рік тому
Такого копипастера мир не видел давно)
@maxfediushkin788
@maxfediushkin788 2 роки тому
Некрасиво автор поступает. По сути это перевод объяснения Филиппа Робертса с конференции JSConf EU 2014. В том числе используется его тулза loupe. Но отсылки на источник нет. Тихо стырил и ушел называется нашел? И да, отписка "Информация для уроков была собрана исходя из авторитетных ресурсов в интернете" не является отсылкой к источнику.
@thecatwrites9731
@thecatwrites9731 2 роки тому
допустим для меня я не смотрел эту конференцию и не знаю что и как, а мне нужно было понять что такое event loop и я очень благодарен что автор стырил это все у другого человека и по-русски обьяснил
@AntonioBenderas
@AntonioBenderas Рік тому
start end 1 3 2
@amir18n
@amir18n Рік тому
start end timer 1 timer 3 timer 2
Урок 4. JavaScript. Асинхронность.Что такое Event Loop. JS SetTimeout 0
17:58
Рекурсия в JavaScript на простых примерах, хватит ее бояться!
37:38
WebDev с нуля. Канал Алекса Лущенко
Переглядів 50 тис.
GADGETS VS HACKS || Random Useful Tools For your child #hacks #gadgets
00:35
ОДИН ДОМА #shorts
00:34
Паша Осадчий
Переглядів 4,1 млн
Помилка,  яку зробило військове керівництво 🙄
01:00
Радіо Байрактар
Переглядів 436 тис.
Word Spacing in CSS.
4:10
Codes with Niru
Переглядів 2
Урок 5. JavaScript. Promise. Что это, как работает (+ пример)
23:18
Владилен Минин
Переглядів 556 тис.
Узнай JavaScript лучше: что такое контекст this, основные ошибки, call apply bind
13:02
JAVA И SКРИПТЫ, ссылка на новый канал в описании
Переглядів 21 тис.
Что такое и как работают замыкания (closures) в JavaScript?
13:55
PurpleSchool | Anton Larichev
Переглядів 11 тис.