Variabile globale și parametri de funcții în JavaScript

Să presupunem că avem o funcție care primește un număr ca parametru:

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

Să presupunem că în afara funcției există variabila num:

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

let num = 1; // variabilă globală externă

Să apelăm funcția noastră, transmitându-i variabila num ca parametru:

javascriptfunction 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ă):

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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ă:

javascriptfunction 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
Задание 1

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

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

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

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

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

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

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

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

let num = 1;
func(num);
num = 2;
Задание 4

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

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

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

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

javascriptfunction func(localNum) {
  localNum = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 6

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

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 7

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

javascriptfunction func(localNum) {
  let num = 2;
}

let num = 1;
func(num);
console.log(num);