Variáveis declaradas com var
funções e no script em nível de escopo global podem ser acessadas com variable_name e window.*variable_name*
.
var foo = "10";
let bar= "20";
function func(){
}
console.log(foo); //10
console.log(window.foo); //10
Eu estava em um estágio de substituição em:
var foo
, afoo
vinculação do identificador é criada e mantida pelo Global Execution Context > Realm > Global Environment Record 's Object Record .let bar
, abar
vinculação do identificador é criada e mantida pelo Global Execution Context > LexicalEnvironment > Global Environment Record's Declarative Record .
Quando o JS tenta acessar uma variável X
no código global, ele verifica primeiro sua vinculação no Registro de Objeto do Registro de Ambiente Global , seguido pelo Registro Declarativo do Registro de Ambiente Global ? Como o JS saberia qual X
vinculação de registro está disponível?