Variabile globale în funcții în JavaScript

În JavaScript (în majoritatea celorlalte limbi nu este așa) variabilele definite în afara funcției, vor fi vizibile în interiorul acelei funcții. Astfel de variabile se numesc globale. Să vedem un exemplu:

javascriptlet num = 1; // variabilă în afara funcției

function func() {
  console.log(num); // variabila num este vizibilă în interiorul funcției
}

func(); // va afișa 1

De fapt, variabila trebuie să fie definită nu înainte de definirea funcției, ci înainte de apelarea ei:

javascriptfunction func() {
  console.log(num);
}

let num = 1; // variabilă în afara funcției
func();      // va afișa 1

Dacă schimbăm valoarea variabilei și după aceea de fiecare dată apelăm funcția - console.log de fiecare dată va afișa rezultate diferite:

javascriptfunction func() {
  console.log(num);
}

let num; // declarăm variabila

num = 1; // setăm valoarea 1
func();  // va afișa 1

num = 2; // setăm valoarea 2
func();  // va afișa 2

Dacă avem mai multe funcții, atunci variabila globală va fi accesibilă în fiecare dintre aceste funcții:

javascriptfunction func1() {
  console.log(num);
}

function func2() {
  console.log(num);
}

let num = 1;

func1(); // va afișa 1
func2(); // va afișa 1

Dacă într-una dintre funcții vor avea loc modificări ale variabilei globale, atunci această variabilă se va schimba în toate funcțiile care folosesc această variabilă:

javascriptfunction func1() {
  console.log(num);
  num++; // modificăm variabila globală
}

function func2() {
  console.log(num);
}

let num = 1;

func1(); // va afișa 1
func2(); // va afișa 2

Deoarece oricare dintre funcții le poate schimba cu ușurință variabila globală, utilizarea lor reprezintă un focar de erori greu de depistat. Din acest motiv, utilizarea variabilelor globale în script trebuie redusă la minimum. Este de dorit să nu existe deloc sau să fie un număr minim.

Задание 1

Stabiliți, fără a rula codul, ce se va afișa în consolă:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

func();
Задание 2

Stabiliți, fără a rula codul, ce se va afișa în consolă:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

num = 2;
func();
Задание 3

Stabiliți, fără a rula codul, ce se va afișa în consolă:

javascriptfunction func() {
  console.log(num);
}

let num;

num = 1;
func();

num = 2;
func();