Variabile globale și parametri de funcții în JavaScript
Să presupunem că avem o funcție care primește un număr ca parametru:
function func(localNum) {
console.log(localNum);
}
Să presupunem că în afara funcției există variabila num:
function func(localNum) {
console.log(localNum);
}
let num = 1; // variabilă globală externă
Să apelăm funcția noastră, transmitându-i variabila num ca parametru:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // apelăm funcția cu parametrul, va afișa 1
Se va întâmpla ca în interiorul funcției să fie accesibilă
atât variabila localNum (parametrul
funcției), cât și variabila num (ca
variabilă externă):
function func(localNum) {
console.log(num); // va afișa 1
console.log(localNum); // va afișa 1
}
let num = 1;
func(num);
Variabila localNum în sine va fi o variabilă
locală a funcției și nu va fi accesibilă din exterior:
function func(localNum) {
}
let num = 1;
func(num); // apelăm funcția cu parametrul
console.log(localNum); // va da o eroare
Deoarece variabila localNum este locală,
nici o modificare a ei nu va schimba nimic
în exterior:
function func(localNum) {
localNum = 2; // nu schimbă nimic în exterior
}
let num = 1;
func(num);
Dacă însă schimbăm în interior variabila num
(globala), atunci modificările vor apărea și în exterior:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // va afișa 2
Cu toate acestea, dacă în interiorul funcției declarăm
variabila num prin let, atunci
vom crea astfel o variabilă locală
num, care nu afectează în niciun fel variabila externă:
function func(localNum) {
let num = 2; // o declarăm prin let
}
let num = 1;
func(num);
console.log(num); // va afișa 1 - nimic nu s-a schimbat
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function func(localNum) {
console.log(localNum);
}
func(1);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Stabiliți, fără a rula codul, ce se va afișa în consolă:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Stabiliți, fără a rula codul, ce se va afișa în consolă:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);