Globale veranderlikes en funksieparameters in JavaScript

Laat ons 'n funksie hê wat 'n getal as parameter aanvaar:

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

Laat daar buite die funksie 'n veranderlike num wees:

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

let num = 1; // eksterne globale veranderlike

Kom ons roep ons funksie aan, en gee die veranderlike num as parameter daaraan:

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

let num = 1;
func(num); // roep funksie met parameter aan, sal 1 vertoon

Dit sal beteken dat binne die funksie beide die veranderlike localNum (die funksieparameter) en die veranderlike num (as 'n eksterne veranderlike) beskikbaar sal wees:

javascriptfunction func(localNum) {
  console.log(num); // sal 1 vertoon
  console.log(localNum); // sal 1 vertoon
}

let num = 1;
func(num);

Die veranderlike localNum self sal 'n lokale veranderlike van die funksie wees en sal nie van buite af toeganklik wees nie:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // roep funksie met parameter aan
console.log(localNum); // sal 'n fout gee

Aangesien die veranderlike localNum lokaal is, sal enige veranderinge daaraan niks aan die buitekant verander nie:

javascriptfunction func(localNum) {
  localNum = 2; // verander niks buite nie
}

let num = 1;
func(num);

As jy egter die veranderlike num (die globale) binne verander, sal die veranderinge ook buite verskyn:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // sal 2 vertoon

Indien jy egter die veranderlike num binne die funksie via let verklaar, sal ons sodoende 'n lokale veranderlike num skep wat geen invloed op die eksterne veranderlike het nie:

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

let num = 1;
func(num);
console.log(num); // sal 1 vertoon - niks het verander nie
Задание 1

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

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

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

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

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

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

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

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

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

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

javascriptlet num = 1;

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

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

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

javascriptfunction func(localNum) {
  num = 2;
}

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

Bepaal, sonder om die kode te laat loop, wat in die konsole vertoon sal word:

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

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