Итак, в этом посте мы собираемся обсудить внутреннюю работу Javascript, так как мы используем его чаще всего, потому что JS доступен везде. Мы используем JS для разработки Frontend и Backend любого современного веб-приложения.
Поэтому, когда вы начинаете изучать или использовать JS, мы должны знать о внутренней работе JS. Итак, я собираюсь объяснить здесь, как это работает внутри:
Что такое JavaScript?
JavaScript — это динамически типизированный однопоточный интерпретируемый язык программирования. Который используется для создания динамических веб-страниц.
Теперь давайте разберемся в значении этих слов
динамически типизированный — это означает, что вам не нужно указывать тип данных для переменных. Он автоматически возьмет во время выполнения.
как мы делаем в Java, которая статически типизирована — int, float, char, которые не нужны в JS.
интерпретируется — это означает, что JS Engine (например, V8 в Chrome) считывает код построчно и преобразует его в машиночитаемый формат (байт-код).
однопоточный. Это означает, что JS имеет только один поток и выполняет все свои операции синхронно (выполняется построчно).
Js используется при создании динамических веб-страниц, потому что он помогает динамически изменять стили и свойства CSS и HTML, что влияет на дизайн страницы.
Платформы для выполнения кода JS-
Мы можем запускать код JS либо в браузере, либо в нашей операционной системе, также используя узел JS.
Если мы запускаем его из браузера, мы не можем выполнять задачи, связанные с ОС или файловой системой, потому что браузер не имеет для этого разрешения. Чтобы решить эту проблему, появился nodeJS, который разработан с использованием движка chrome v8 и C++.
движок V8 состоит из двух частей
область кучи — используется для выделения памяти для объектов и переменных
стек вызовов — внутри Стек вызовов, выполняется JS. JS однопоточный, потому что в каждый момент времени только один стек вызовов.
Этапы внутренней работы с JS-кодом
1. Парсер — проверяет синтаксис кода построчно
2. AST — после проверки парсером все коды JavaScript и убеждается, что в коде нет ошибок/ошибок, он создает структуру данных, называемую AST (абстрактное синтаксическое дерево).
3. Преобразование в машинный код — JS Engine преобразует его в машинный код.
4. Машинный код выполняется браузером.
Дополнительные знания, связанные с однопоточной концепцией
Из-за однопоточности он выполняется шаг за шагом, поэтому проблема взаимоблокировки никогда не возникает.
Но мы знаем, что используем асинхронное программирование в JS, тогда как это происходит?
Это связано с тем, что цикл событий Js использует функцию браузера, такую как DOM, Ajax.
EventLoop — это отдельная тема, которую мы рассмотрим в следующем блоге.
Спасибо за чтение!
Дайте мне знать в разделе комментариев, если у вас есть какие-либо сомнения.
Удачного изучения JS!