Size: a a a

JavaScript Noobs — сообщество новичков

2020 February 07

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
что это вообще за функция
источник

I,

If you can do it bet... in JavaScript Noobs — сообщество новичков
Bogdan Aleksandrovich
есть функа
var y = 5;
const x = function(){
   return y;
};
const z = function(t){
   var y = 10;
   return t();
};
z(x);

в ответе 5, почему 5?
ведь при выполнении будет что то вроде такого
global = {
   record: {
       y: 5
       x = undefined
       y = undefined
   }
   outer null
}

zEnvirmoment = {
   record {
       y: 10
   }
   outer: global
}

xEnvirmoment = {
   record {}
   outer: zEnvirmoment
}


должно быть 10, что я не так понял?
^
источник

A

Alex in JavaScript Noobs — сообщество новичков
про лексическую область видимости слышали?
источник

F

Foma in JavaScript Noobs — сообщество новичков
кто ваще эти задания придумывает....
источник

A

Alex in JavaScript Noobs — сообщество новичков
нет?
источник

DD

Dmitry Dugin in JavaScript Noobs — сообщество новичков
Bogdan Aleksandrovich
есть функа
var y = 5;
const x = function(){
   return y;
};
const z = function(t){
   var y = 10;
   return t();
};
z(x);

в ответе 5, почему 5?
ведь при выполнении будет что то вроде такого
global = {
   record: {
       y: 5
       x = undefined
       y = undefined
   }
   outer null
}

zEnvirmoment = {
   record {
       y: 10
   }
   outer: global
}

xEnvirmoment = {
   record {}
   outer: zEnvirmoment
}


должно быть 10, что я не так понял?
ну что я тебе могу сказать, надеюсь ты сам такой говнокод не пишешь, а если пишешь - сочувствую. если такое в команде есть - либо учись такое понимать, либо беги от такой конторы. цель программ-та какая? - "учись быстро, развивайся быстро" в говноконторах засиживаться не намерен
источник

A

Alex in JavaScript Noobs — сообщество новичков
тогда почитайте и будет вам просветвление
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
анализ кода
- составит лексическую область видимости глобальную
global = {
   record: {
       y: 5
       x = undefined
       y = undefined
   }
   outer null
}

выполнение
z(x) =>
создается лексическая область видимости для функи
zEnvirmoment = {
   record {
       y: 10
   }
   outer: global
}

создается контекст выполнения => в стек

t() =>
создается лексическая область видимости для функи
xEnvirmoment = {
   record {}
   outer: zEnvirmoment
}

создается контекст выполнения => в стек

значит при выполнении t, движек должен искать y по цепочке outer = zEnvirmoment => тут y = 10
источник

KS

Konstantin Sedykh in JavaScript Noobs — сообщество новичков
вот так должно 10 вернуть:
var y = 5;
const x = () =>y;
};
const z = function(t){
   var y = 10;
   return t();
};
z(x);
источник

I,

If you can do it bet... in JavaScript Noobs — сообщество новичков
зачем вот это все херня global -> record … ?
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
бля, не пишите мне по коду, ало, я спрашиваю, как это работает на уровне движка, не кидайте тупые, заученные фразы, пж
источник

A

Alex in JavaScript Noobs — сообщество новичков
Bogdan Aleksandrovich
анализ кода
- составит лексическую область видимости глобальную
global = {
   record: {
       y: 5
       x = undefined
       y = undefined
   }
   outer null
}

выполнение
z(x) =>
создается лексическая область видимости для функи
zEnvirmoment = {
   record {
       y: 10
   }
   outer: global
}

создается контекст выполнения => в стек

t() =>
создается лексическая область видимости для функи
xEnvirmoment = {
   record {}
   outer: zEnvirmoment
}

создается контекст выполнения => в стек

значит при выполнении t, движек должен искать y по цепочке outer = zEnvirmoment => тут y = 10
все не правильно
источник

A

Alex in JavaScript Noobs — сообщество новичков
садись 2
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
Alex
все не правильно
что не правильно, конкретно опиши так же, как правильно
источник

I,

If you can do it bet... in JavaScript Noobs — сообщество новичков
Konstantin Sedykh
вот так должно 10 вернуть:
var y = 5;
const x = () =>y;
};
const z = function(t){
   var y = 10;
   return t();
};
z(x);
нет о.О
источник

A

Alex in JavaScript Noobs — сообщество новичков
читай снаво про лексическую облась видимости
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
Alex
читай снаво про лексическую облась видимости
я тебе вопрос задал
источник

I,

If you can do it bet... in JavaScript Noobs — сообщество новичков
источник

I,

If you can do it bet... in JavaScript Noobs — сообщество новичков
😉
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
вот только читал статьи, там так и описывали, опускаю разделение на LexicalEnvironment и VariableEnvironment
источник