Особенности реализации всего этого не стандартизированы, и каждый поставщик может применять их по своему усмотрению.
онимание интерпретатора состоит в том, что он выполняет программу построчно, и мы можем видеть мгновенные результаты, в отличие от скомпилированных языков, которые преобразуют код, а затем исполняют его.
Мой вопрос, в Javascript, как интерпретатор узнает, что переменная объявлена где-то в программе и регистрирует ее какundefined
?
Рассмотрим программу ниже:
function do_something() {
console.log(bar); // undefined (but in my understanding about an interpreter, it should be throwing error like variable not declared)
var bar = 111;
console.log(bar); // 111
}
Неявно понимается как:
function do_something() {
var bar;
console.log(bar); // undefined
bar = 111;
console.log(bar); // 111
}
Как это работает?