La finestra è veramente globale in Javascript?

Prendi questo pezzo di Javascript in un browser:

 console.log(window.someThing); var x = 12; function foo() { window.otherThing = x; }  

Dentro di noi possiamo accedere alla window , lo sappiamo tutti, ma perché esattamente?

  • È una specie di variabile globale speciale?
  • O lo “root scope” (all’interno del tag script ) lo ha come variabile locale implicita ed è semplicemente “closed-inherited” come qualsiasi altra variabile locale (come x sopra) può essere?

E come è ansible concordare con le variabili dichiarate direttamente all’interno del tag script impostate come proprietà della window ? (O non è così?)

  var x = 12; function() { console.log(window.x); }