Sono in esecuzione in un problema ambito strano con JavaScript (vedi JSFiddle):Javascript problema portata variabile globale
var someGlobal = 3;
function someF() {
// undefined issue
alert(someGlobal);
var someGlobal = 5;
// Displays 5
alert(someGlobal);
}
function someF2() {
// Displays 3, why?
alert(someGlobal);
}
someF();
someF2();
Perché non Javascript tiri un problema indefinito in someF2()
? Come mai someF2()
non può accedere a someGlobal
e someF()
no? Come posso assicurarmi che una variabile globale sia accessibile in una funzione?
Nota:
In entrambi i casi, le funzioni iniziare chiamando alert(someglobal)
, perché una funzione buttare un problema indefinito e l'altro no?
+1 per la risposta migliore ma descrive più che la variabile globale viene sovrascritta dalla variabile locale nella funzione: D –
Non viene sovrascritta, viene mascherata. – Quentin
bene puoi darmi una piccola spiegazione su entrambi! non ho fatto ricerche su di esso! Solo per quella funzione viene sovrascritta o no? –