Javascript сегодня является одним из самых популярных языков программирования. Вы можете знать Javascript через такие фреймворки, как jQuery или React. Но в этом блоге я пишу об основах, которые люди, создавшие jQuery и React, использовали для создания таких фреймворков. Это помогло мне стать лучшим программистом.
Javascript абстрагирует нас от того, как работает компьютер и браузер. Это помогло мне узнать, как работают инструменты и что происходит внутри Javascript.
Эти основы Javascript помогли мне понять, что происходит под капотом и как работает код с момента создания файла Javascript.
Синтаксический анализатор. Программа, которая читает ваш код и определяет, что он делает и верна ли грамматика. Такие как — компиляторы, которые проверяют соответствие вашего кода и преобразовывают его в понимание компьютера или программиста, который его написал. Ваш код является переводом кода, в который он был встроен.
Лексическая среда: где что-то физически находится в коде, который вы пишете. Проверяет, где вы видите написанное и как оно взаимодействует с другими элементами программы.
Контекст выполнения. Оболочка, помогающая управлять исполняемым кодом. Если вы используете лексические среды, каждая из них управляется через контексты выполнения.
Первый этап: этап создания.
Второй этап: этап выполнения кода.
Базовый контекст выполнения (глобальный):доступен везде: он создает глобальный объект и «этот» объект. Глобально: «Не внутри функции»
Всякий раз, когда код запускается в JS внутри контекста выполнения. Оболочка, которую движок javascript анализирует, проверяет ваш код в контексте исключения.
this: объект окна, созданный движком JS, который является окном, в котором вы находитесь.
Поднятие.Большинство определений подъема в Интернете неверны, например, «Поднятие — это перемещение всего кода в верхнюю часть js-файла».
Правда в том, что до того, как ваш код будет выполнен, движок JS уже выделил место в памяти для переменных и функций, которые вы создали. Однако когда дело доходит до переменных, все совсем по-другому, он помещает заполнитель для переменной, если она еще не назначена.
let myVar, console.log(myVar) myVar = 'Hello'
Это напечатает undefined на нашей консоли. Который был поднят, потому что myVar находится в памяти движка, но еще не назначена.
Однако если мы вообще не объявим переменную myVar, то получим ошибку:
console.log(myVar) Uncaught ReferenceError: myVar is not defined?
Тем не менее, Подъем просто великолепен, когда речь идет о функциях.
a() function a(){ console.log('Hello World!') } 'Hello World!'
Когда мы вызываем функцию, движок Javascript просматривает остальные строки и память, чтобы получить функцию.
Не определено. Специальное значение означает, что переменная находится в памяти, но еще не назначена.
Однопоточный:одна команда во время выполнения.
Синхронный:одна команда во время выполнения по порядку. Который JS.
Асинхронный. Чтобы понять асинхронный, мы должны понимать очереди событий и стек выполнения.
Очередь событий Браузер синхронно переходит в очередь событий после запуска всех стеков выполнения, таких как запросы onClick или HTTP.
Вызов функции и стек выполнения:
- Каждый раз, когда вызывается функция, вызывается и выполняется контекст выполнения.
- Сначала глобальное выполнение, затем стек за стеком, затем возвращается к предыдущему стеку.
- Построчно на синхронном уровне.
Цепочка области действия. Область действия — это место, где переменная доступна в вашем коде.
ОБЪЕКТЫ — это набор пар "имя-значение".
Пара "имя-значение":имя, которое соответствует уникальному значению.
{Адрес: «Главная улица, 100»}
Я надеюсь, что это поможет для будущих интервью!