Как работает JavaScript

Понимание основ бесценно.

Понимание того, как работает JavaScript, упрощает чтение и написание кода и позволяет вам больше сосредоточиться на логике, а не беспокоиться о синтаксисе языка, что более важно, поможет вам понять основные концепции.

Как это работает.

Компьютеры не понимают JavaScript, браузеры понимают.

Помимо обработки сетевых запросов, прослушивания щелчков мыши и интерпретации HTML и CSS на экране, браузеры имеют встроенный движок JavaScript.

Движок JavaScript — это программа, которая преобразует весь код во что-то, что компьютер может понять и выполнить —

машинный код.

Это происходит синхронно, то есть по одной строке за раз и по порядку. Следовательно, JavaScript является синхронным однопоточным языком. Но вы, возможно, слышали о AJAX, где A означает Asynchronous, это отдельная тема для обсуждения.

V8 — это движок JavaScript, разработанный Google и открытый в 2008 году.

Контекст выполнения

Все в JavaScript происходит внутри контекста выполнения. Он определяется как среда, в которой выполняется код. Он разделен на два компонента Переменная среда (память) и Поток выполнения (код). В компоненте памяти все переменные и функции хранятся в key : value пара. Компонент кода — это место, где код выполняется построчно.

Он бывает двух видов:

1. Глобальный контекст выполнения (GEC):

Это контекст выполнения по умолчанию, в котором код JS выполняется в браузере. Весь глобальный код, т.е. который не находится внутри какой-либо функции. В основном это любой код, который вы пишете вне функции.

2.Контекст выполнения функции (FEC):

Контекст выполнения функции определяется как контекст, создаваемый движком JS всякий раз, когда он находит любой вызов функции. Каждая функция имеет свой собственный контекст выполнения. Их может быть больше одного, если JS-движок находит вызов функции, он создает новый контекст выполнения для этой функции.

В JavaScript есть 2 фазы:

1. Этап создания:

На этом (первом этапе) этапе создания переменные получают специальное значениеUndefined, присвоенное им в коде, независимо от того, что присвоено их в коде.

2. Этап выполнения:

На этом (втором шаге) присваивается фактическое значение, и это происходит, когда оно достигает строки назначения

Если вы понимаете, как работают эти фазы, вам будет легко понять концепцию Подъем.

Стек вызовов :

Поддерживает порядок выполнения в контексте выполнения, где хранится весь глобальный контекст выполнения, и он помещается в стек.

Теперь, когда функция вызывается, создается контекст выполнения, который помещается в стек, а после выполнения функции извлекается из стека. После этого выполняется глобальный контекст выполнения, который также извлекается из стека.

Я надеюсь, что у вас есть базовое понимание концепций, есть много других тем для обсуждения, таких как замыкания, подъем, промисы, это, область действия и цепочка областей действия, временная мертвая зона и многие другие.