Globala variabler och funktionsparametrar i JavaScript
Låt oss säga att vi har en funktion som tar ett nummer som parameter:
function func(localNum) {
console.log(localNum);
}
Låt oss säga att det finns en variabel num utanför funktionen:
function func(localNum) {
console.log(localNum);
}
let num = 1; // extern global variabel
Låt oss anropa vår funktion och skicka
variabeln num som parameter:
function 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:
function 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:
function 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:
function 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:
function 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:
function func(localNum) {
let num = 2; // deklarera med let
}
let num = 1;
func(num);
console.log(num); // skriver ut 1 - inget förändrades
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(localNum) {
console.log(localNum);
}
func(1);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
Bestäm, utan att köra koden, vad som kommer att skrivas ut i konsolen:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);