Первый урок о JavaScript я бы хотела начать с трёх фундаментальных терминов. Знания о том, что означают эти слова, помогут вам в дальнейшем изучении JavaScript.
❗️❗️❗️ Синтаксический анализатор
или парсер - программа, которая читает ваш код и определяет что он делает, и валиден (valid) ли он.
То, что вы пишите на JavaScript - это ведь не магия, которая напрямую диктует компьютеру, что ему следует делать. Вы пишите код, а программа, которую кто-то уже написал, конвертирует ваш JavaScript во что-то еще, что понимает компьютер.
Язык процессора (устройства, машины, компьютера) называют машинным кодом, который выполняется процессором. Программу, преобразующую исходный код (JavaScript) в машинный язык, называют компилятором. А программу, читающую и выполняющую исходный код - интерпретатором.
Эти программы, компиляторы и интерпретаторы, читают ваш код: букву за буквой, проверяют правильный (валидный) ли он и переводят в код, который компьютер поймёт.
Представьте, что есть код, написанный вами, а есть программа, которая переведет этот код в набор инструкций для вашего компьютера. Так, например, у вас есть функция с переменной, которые переведутся из более читабельного для человека языка в язык, который понимает компьютер, компилятором или интерпретатором, который будет между ними, частью которого будет синтаксический анализатор.
Синтаксический анализатор будет проверять букву за буквой.
Буквально, букву за буквой... F-U-N-C-T-I-O-N. О! Это функция, значит должен быть пробел и далее будет название функции... и т.д.
❗️❗️❗️ Лексическое окружение
(lexical environment): ГДЕ "сидеть" в вашем коде. Слово "лексическое" говорит о том, что мы имеем дело с грамматикой и словами. Так как мы говорим о коде, это синтаксис, словарь. Лексическое окружение существует в языках программирования, которым важно, ГДЕ вы пишите.
Если вы взглянете на код с картинки выше:
function hello() {
var a = ‘hello golos’
}
то увидите, что переменная a
"сидит" внутри функции. Как я уже сказала, компьютеру наш код доходит в переводе на его язык. В языках программирования, для которых лексическое окружение важно, это означает, что и компьютеру станет понятно, куда эту переменную "посадить" у себя в памяти, как ей следует взаимодействовать с другими переменными, функциями и элементами программы.
Когда мы говорим о лексическом окружении ЧЕГО-ЛИБО в коде, мы говорим о том, где это ЧТО-ТО написано, что ЕГО окружает.
❗️❗️❗️ Контекст выполнения
- упаковка, которой передается управление над выполняемым кодом.
Каждый вызов функции имеет контекст выполнения. Когда, например, интерпретатор JavaScript выполняет код, по умолчанию контекстом выполнения является глобальный контекст. Каждый вызов функции приводит к созданию нового контекста выполнения.
// глобальный контекст выполнения
var hello = 'Hello';
var user = function() { // контекст выполнения функции
var name = '@qqc';
var getName = function() { // контекст выполнения функции
return name;
}
var sayHello = function() { // контекст выполнения функции
console.log(hello + ', ' + getName());
}
sayHello();
}
user(); //Hello, @qqc!
Привет!
Этот пост был выбран Академией Голоса и попал в список программы поддержки качественных образовательных постов.
Ссылка на твой пост будет опубликована в отчете Академии.
Спасибо за полезный контент (ノ◕ヮ◕)ノ*:・゚✧
🎉😜
Отличная новость ) Большое спасибо!