Like navn på variabler i funksjoner i JavaScript

La det både utenfor funksjonen og inni være en variabel num. I dette tilfellet vil eventuelle endringer av den lokale variabelen num ikke påvirke den globale variabelen num:

javascriptlet num = 1; // global variabel

function func() {
  let num = 2; // lokal variabel
  console.log(num);
}
func(); // kaller funksjonen, vil skrive ut 2

console.log(num); // vil skrive ut 1 - den globale variabelen endret seg ikke

Men hvis vi glemmer å deklarere den lokale variabelen num via let, vil det ikke bli opprettet noen lokal variabel num inni funksjonen, men den globale variabelen blir endret:

javascriptlet num = 1;

function func() {
  num = 2; // glemte å skrive let - endrer den eksterne variabelen
  console.log(num);
}
func(); // kaller funksjonen, vil skrive ut 2

console.log(num); // vil skrive ut 2 - variabelen ble endret

Her kan det være to situasjoner: enten ville vi egentlig endre den globale variabelen (da er alt i orden), eller vi glemte let og ved et uhell endret den globale variabelen.

Den andre situasjonen er en vanskelig å oppdage feil, som leder til uforutsigbar oppførsel av skriptet. Derfor bør du alltid, når du innfører en ny variabel, deklarere den via let.

Задание 1

Bestem, uten å kjøre koden, hva som vil skrives ut i konsollen:

javascriptlet num = 1;

function func() {
  num = 2;
}
func();

console.log(num);
Задание 2

Bestem, uten å kjøre koden, hva som vil skrives ut i konsollen:

javascriptlet num = 1;

function func() {
  let num = 2;
}
func();

console.log(num);