Доброго времени суток! Как известно, одной из характерных черт JavaScript, наряду c мультипарадигменностью, слабой (динамической) типизацией, автоматическим управлением памятью и прототипным наследованием, является тот факт, что JS — это однопоточный (синхронный) язык.
Что касается синхронности, то ключевым элементом здесь выступает стек вызовов (call stack). Если вы впервые о нем слышите, то настоятельно рекомендую прочитать эту статью и посмотреть это видео.
Насколько хорошо вы знакомы с тем, как работает JS под «катом»?
Давайте проверим.
Предлагаю вашему вниманию небольшой интерактив — игру под названием «CallStack Challenge».
Условия следующие: 11 вопросов на определение порядка вывода значений в консоль, 11 ответов в формате «log,log,log», +1 балл за каждый ответ. Набрали 9+ баллов, значит, вы — мастер коллстека. Набрали меньше — есть над чем работать.
Готовы? Тогда вперед.
Проект на GitHub Pages.
Код проекта на GitHub
Благодарю за внимание.
mark_ablov
10/11, последний вопрос подвёл — на внимательность ;)
space2pacman
Тоже самое :)
Только с 3-го раза увидел, что console.info выполняется вне setTimeout