Variabili globali e parametri delle funzioni in JavaScript
Supponiamo di avere una funzione che accetta un numero come parametro:
function func(localNum) {
console.log(localNum);
}
Supponiamo che all'esterno della funzione ci sia una variabile num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // variabile globale esterna
Chiamiamo la nostra funzione, passandole la variabile num come parametro:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // chiamiamo la funzione con il parametro, stamperà 1
Risulterà che all'interno della funzione saranno accessibili sia la variabile localNum (parametro della funzione) che la variabile num (come variabile esterna):
function func(localNum) {
console.log(num); // stamperà 1
console.log(localNum); // stamperà 1
}
let num = 1;
func(num);
La variabile localNum stessa sarà una variabile locale della funzione e non sarà accessibile dall'esterno:
function func(localNum) {
}
let num = 1;
func(num); // chiamiamo la funzione con il parametro
console.log(localNum); // darà un errore
Poiché la variabile localNum è locale, qualsiasi modifica ad essa non cambierà nulla all'esterno:
function func(localNum) {
localNum = 2; // non cambia nulla all'esterno
}
let num = 1;
func(num);
Se invece modifichiamo all'interno la variabile num (globale), le modifiche appariranno anche all'esterno:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // stamperà 2
Tuttavia, se all'interno della funzione dichiariamo la variabile num tramite let, creeremo così una variabile locale num che non influisce in alcun modo sulla variabile esterna:
function func(localNum) {
let num = 2; // dichiariamo tramite let
}
let num = 1;
func(num);
console.log(num); // stamperà 1 - nulla è cambiato
Determinate, senza eseguire il codice, cosa verrà stampato in console:
function func(localNum) {
console.log(localNum);
}
func(1);
Determinate, senza eseguire il codice, cosa verrà stampato in console:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Determinate, senza eseguire il codice, cosa verrà stampato in console:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Determinate, senza eseguire il codice, cosa verrà stampato in console:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Determinate, senza eseguire il codice, cosa verrà stampato in console:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Determinate, senza eseguire il codice, cosa verrà stampato in console:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Determinate, senza eseguire il codice, cosa verrà stampato in console:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);