Итак, в этом посте мы собираемся обсудить внутреннюю работу 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!