Dichiarazione variabile in funzione

PazzoFrontEnd

Utente Attivo
8 Ott 2013
46
0
6
Buongiorno ragazzi

la mia domanda è prettamente "teorica". Vorrei sapere il motivo del comportamento di un costrutto del genere:

Codice:
/*così va in errore*/
function mia_funzione() {

     
    if ( $("body#mioId").length > 0 ) {
           var var_1 = $('#selettore2');
    } else {
           var var_1 = $('#selettore1');
    }

    altraFunzione(var_1);

}


/*così non va in errore*/
 
function mia_funzione() {

    var var_1 = $('#selettore1');
   
    if ( $("body#mioId").length > 0 ) {
          var_1 = $('#selettore2');
    }

    altraFunzione(var_1);

}
Perchè nel primo caso va in errore? e nel secondo no? Cioè, capisco che è per la dichiarazione della variabile, ma vorrei capire se è un fatto di "scope" o altro?

Qualcuno può darmi una spiegazione "didattica"?
Grazie mille anticipatamente
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, niente teoria : a me funziona anche la prima
Codice:
<script>
    /*così va in errore*/
    function mia_funzione() {
        if (1 > 0) {
            var var_1 = "maggiore";
        } else {
            var var_1 = "minore";
        }

        altraFunzione(var_1);

    }
    function altraFunzione(variabile) {
        alert(variabile);
    }

    mia_funzione();

</script>