Я ОГРОМНЫЙ поклонник пробовать что-то новое.
Несколько друзей из моего родного города посетили меня в первые выходные августа, и они большие фонетики. Конечно, живя в Южной Калифорнии (Южная Калифорния, для тех, кто, возможно, не знал), есть множество ресторанов, в меню которых есть вкусные фо, но, поскольку у нас под рукой был жесткий критик фо, мы знали, что нам нужно отвезите их в известный ресторан.
Проведя небольшое исследование, мы выбрали ресторан под названием Pho 79. Когда мы сели и посмотрели их меню, я увидел, что у них есть Bún riêu. Я видел и слышал хорошие вещи об этом. Бун риу — традиционный вьетнамский суп в томатном бульоне с фаршем из пресноводного краба и жареным тофу с рисовой вермишелью.
Когда он впервые появился, он пах потрясающе. Я съел первое, что оказалось сверху, — фрикадельку из крабового фарша. После того, как я проглотил это, в мой мозг были отправлены сообщения: «Мне это понравилось?» Какой вкус я ощущал? Хочу ли я укусить его снова?
Через пару секунд, кипящих в мыслях, я автоматически понял — «да, мне это нравится!» «Вкус был соленый, томатный и сытный» и (ежу понятно) «Да, я хочу съесть еще этого».
Я углубился в помидоры после крабовых фрикаделек, и, боже мой — они тают во рту, затем последовал жареный тофу, который был мягким и мягким, и, наконец, рисовая лапша с вермишелью — это было идеально. Лучший способ. съесть булочку означало добавить креветочную пасту, так что не забывайте об этом! :)
В общем, сочетание всего в одной миске было идеальным, и я ушел с полным желудком и наслаждался вкусным ужином с друзьями. И, о да, моему другу понравилось фото, и он тоже пошел домой счастливый!
Я использую свой опыт булочек для сопоставления с тем, что происходит под капотом JavaScript.
В разных браузерах используются разные движки для запуска JavaScript. Например, Google Chrome использует движок V8. В движке V8 он состоит из двух элементов: кучи и стека. Куча заботится о выделении памяти (хранении имен переменных и т. д.), а стек заботится о содержимом выполнения.
Поскольку JS — это один поток, он имеет только один стек вызовов, что означает, что он может запускать только один код одновременно.
Стек вызовов записывает, где вы находитесь в программе — если функция выполняется, она помещается в стек. Когда мы возвращаемся из функции, она извлекается из стека.
Когда дело доходит до асинхронного запуска кода, его необходимо запускать асинхронно (с асинхронными обратными вызовами), чтобы не блокировать код, выполняемый в браузере. Мы любим неблокирующие коды. :)
Когда код запускается из стека, он попадает в веб-интерфейс, затем выбрасывается в очередь задач и, наконец, попадает в цикл обработки событий. Очередь задач берет первое задание из очереди и помещает его обратно в стек. Цикл событий должен дождаться, пока стек не очистится, прежде чем вытолкнуть первое задание из очереди задач.
Если вы хотите узнать об этом больше, Филип отлично справится с этим процессом. Ссылка указана ниже в ресурсах.
Надеюсь, вам, ребята, понравилось узнавать о том, что происходит под капотом JavaScript и что происходит у меня в желудке, когда я пробовал свою первую булочку.
Что ты пробовал сегодня?
Ресурсы:
Отличный плейлист, чтобы узнать больше о JS и о том, как отлаживать функции: https://www.youtube.com/watch?v=-G9c4CMMUKc
Узнайте больше о том, что происходит под капотом с Филипом Робертсом: https://www.youtube.com/watch?v=8aGhZQkoFbQ