Globala variabler och funktionsparametrar i JavaScript

Låt oss säga att vi har en funktion som tar ett nummer som parameter:

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

Låt oss säga att det finns en variabel num utanför funktionen:

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

let num = 1; // extern global variabel

Låt oss anropa vår funktion och skicka variabeln num som parameter:

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

let num = 1;
func(num); // anropar funktionen med parameter, skriver ut 1

Resultatet blir att både variabeln localNum (funktionsparametern) och variabeln num (som en extern variabel) kommer att vara tillgängliga inuti funktionen:

javascriptfunction func(localNum) {
  console.log(num); // skriver ut 1
  console.log(localNum); // skriver ut 1
}

let num = 1;
func(num);

Variabeln localNum i sig kommer att vara en lokal variabel för funktionen och kommer inte att vara tillgänglig utifrån:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // anropar funktionen med parameter
console.log(localNum); // ger ett fel

Eftersom variabeln localNum är lokal, kommer inga förändringar av den att ändra något utänför:

javascriptfunction func(localNum) {
  localNum = 2; // ändrar inget utänför
}

let num = 1;
func(num);

Om vi däremot ändrar variabeln num (den globala) inuti funktionen, kommer förändringarna att synas utänför:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // skriver ut 2

Men om vi deklarerar variabeln num inuti funktionen med let, så skapar vi på så sätt en lokal variabel num som inte påverkar den externa variabeln:

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

let num = 1;
func(num);
console.log(num); // skriver ut 1 - inget förändrades
Задание 1

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptlet num = 1;

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

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(localNum) {
  localNum = 2;
}

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

javascriptfunction func(localNum) {
  num = 2;
}

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

Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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