Ciao,
mi manca dove trovare documentazione sulla sequenza di priorità che avviene quando si usano le funzioni autoavviate. Nel prossimo codice ho istanziato una variabile prima di una funzione che si autoavvia, quello che mi aspettavo era che al suo interno la variabile istanziata fosse valorizzata e invece no.

Qualcuno mi mette ordine sul concetto?

esempio:

codice:
var a=1;
(function(){
console.log("prima",a);
    var a=2;
console.log("dopo",a);
})();
console.log("fuori",a);
ecco cosa mostra la console.

prima undefined
dopo 2
fuori 1