janela é realmente global em Javascrip

Pegue esta parte do Javascript em um navegador:

<script>

console.log(window.someThing);
var x = 12;

function foo() {
   window.otherThing = x;
}

</script>

Dentrofoo podemos acessarwindow, todos nós sabemos disso, mas por que exatamente?

algum tipo de variável global especiaOr faz o "escopo raiz" (dentro doscript tag) tem isso como uma variável local implícita e é simplesmente "herdada pelo fechamento" como qualquer outra variável local (comox acima) pode ser?

E como isso coincide com variáveis declaradas diretamente dentro doscript sendo definida como propriedades dewindow? (Ou não é assim?)

<script>
var x = 12;
function() {
   console.log(window.x);
}
</script>

questionAnswers(7)

yourAnswerToTheQuestion