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:
let 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:
let 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.
Bestem, uten å kjøre koden, hva som vil skrives ut i konsollen:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Bestem, uten å kjøre koden, hva som vil skrives ut i konsollen:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);