Javascript используется программистами по всему миру для создания динамического и интерактивного веб-контента, такого как приложения и браузеры.

Ява-скриптовый движок

JavaScript не понятен компьютерам, но единственный браузер понимает JavaScript. Итак, нам нужна программа для преобразования нашей программы JavaScript в понятный компьютеру язык. Механизм JavaScript – это компьютерная программа, которая выполняет код JavaScript и преобразует его в язык, понятный компьютеру.

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

JavaScript | Подъем

В JavaScript подъем — это поведение по умолчанию, заключающееся в перемещении всех объявлений вверху области действия перед выполнением кода. По сути, это дает нам преимущество в том, что независимо от того, где объявлены функции и переменные, они перемещаются в верхнюю часть своей области видимости независимо от того, является ли их область действия глобальной или локальной.

Это позволяет нам вызывать функции еще до того, как они будут записаны в нашем коде.

Примечание. JavaScript поднимает только объявления, а не инициализации.

JavaScript выделяет память для всех переменных и функций, определенных в программе перед выполнением.

// функция подъема
codeHoist(){
a = 10;
let b = 50;
}
codeHoist();

console.log(а); // 10
console.log(b); // ReferenceError: b не определен

В приведенном выше примере кода мы создали функцию с именем codeHoist(), и в ней у нас есть переменная, которую мы не объявляли, используя let/var/const и переменную let b. Необъявленной переменной присваивается глобальная область действия с помощью javascript, поэтому мы можем распечатать ее вне функции, но в случае переменной b область ограничена и недоступна снаружи, и мы получаем ReferenceError.

// код переменной (глобальный)
console.log(name); // undefined
var name = ‘Мукул Латиян’;

В приведенном выше коде мы попытались утешить имя переменной, которое было объявлено и назначено позже, чем его использование, компилятор выдает нам undefined, чего мы не ожидали, поскольку мы должны были получить ReferenceError, так как мы пытались использовать переменную имени еще до ее объявления.

//let example(global)
console.log(name);
let name=’Mukul Latiyan’; // ReferenceError: имя не определено

Как и раньше, для ключевого слова var мы ожидаем, что вывод журнала будет неопределенным. Однако, поскольку es6 let не любит, когда мы используем необъявленные переменные, интерпретатор явно выдает ошибку Reference. Это гарантирует, что мы всегда сначала объявляем нашу переменную.

Что такое реактивное программирование?

Реактивное программирование описывает парадигму проектирования, основанную на логике асинхронного программирования для обработки обновлений в реальном времени статического контента. Он предоставляет эффективные средства — использование автоматизированных потоков данных — для обработки обновлений данных в контенте всякий раз, когда пользователь делает запрос.

Что такое функциональное программирование?

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

JS против Rxjs

Наблюдатель – это интерфейс, который используется для подачи наблюдаемого источника.

Observable предназначен для потребителя, его можно преобразовать и подписаться.

Ссылка

https://www.geeksforgeeks.org/introduction-to-javascript-engines/

https://www.geeksforgeeks.org/javascript-hoisting/