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

RedDeveloper
26.04.2023 13:57
Контекст исполнения в JavaScript

Привет всем, на этот раз я расскажу о контексте выполнения в javascript.

В других языках программирования, таких как golang, c++ или других, когда мы вызываем переменную до того, как она объявлена, возникает ошибка. Но в javascript это приведет к неопределенности, это происходит из-за контекста выполнения. обратите внимание на следующий фрагмент кода:

console.info(name)

var name = 'AlfaRiza'

Если имя переменной вызывается первым до ее объявления, она будет неопределена.

Определение

Контекст выполнения определяется как среда, в которой интерпретатор выполняет код javascript.

Контекст выполнения имеет две фазы: фазу создания и фазу выполнения.

Мы можем увидеть визуализацию процесса контекста выполнения на javascript https://pythontutor.com/javascript.html

фаза создания

Что происходит во время фазы создания:

  • Javascript создаст глобальный объект, подобно окну в веб-браузере.
  • Javascript создаст объект `this`, который будет ссылаться на глобальный объект.
  • Создайте кучу памяти для хранения переменных и функций.
  • Сохраняет объявления функций в куче памяти и переменные в глобальном контексте выполнения с начальным значением undefined.

фаза выполнения

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

Каждый раз, когда вы запускаете функцию, javascript создает контекст выполнения функции или локальный контекст выполнения.

подъем

Hoisting в переводе на индонезийский означает "подъем", потому что при запуске javascript считывает код и ищет ключевые слова var и function, затем помещает var и function наверх.

Например

var number = 10

function is_even(number) {
  return number % 10 === 0 ? 'Genap' : 'Ganjil'
}

var hasil = is_even(number)

console.info(hasil)

На этапе создания javascript сохранит переменную number, переменную result как неопределенную, а объявление функции is_even без выполнения.

Затем на этапе выполнения javascript выполнит код сверху вниз. Начиная с переменной number, заполненной значением 10, затем заполняя переменную result вызовом функции is_even с возвратом 'Even'. Когда функция is_even будет выполнена, она создаст локальный контекст выполнения. Затем последняя переменная результата console.info, содержащая 'Even'.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?

05.05.2023 14:00

Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.

Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом

05.05.2023 11:59

Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.

JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы

05.05.2023 11:57

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.

Массив зависимостей в React
Массив зависимостей в React

05.05.2023 09:44

Все о массиве Dependency и его связи с useEffect.

Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий

05.05.2023 09:26

Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут вам настроить, как будет выглядеть ваш сайт Temple, и вы можете настроить его дизайн в зависимости от ваших потребностей в дополнение к более чем 15+...