Posts

Posts uit september, 2016 tonen

Advanced javascript

Scope en javascript compiler Scope:  waar zoeken we naar (variabelen, functies, etc) wie zoekt er? Javascript heeft enkel een function scope. Misconceptie is dat Javascript geen compiled language is; dat is het namelijk wel. De JS engine gaat twee keer door de code heen: de compileer-fase en de runtime fase. Hierover later meer. Compileerfase zoekt naar declaraties van variabelen en functies en plaats deze in de juiste 'scope slots'. var foo = "bar"; function bar(){ var foo = "bar"; } function baz(foo){ foo = "bam"; bam = "yay"; } Deze code wordt door Javascript door twee totaal verschillende fases verwerkt: De declaration fase (het var foo gedeelte) en een initialization fase (het toekennen van "bar" aan foo). Deze twee operaties (fases) gebeuren op totaal verschillende tijdstippen. De compiler scant naar alle declaraties (var statements en function declarations) die hij kan vinden. Als hij e