Globale veranderlikes in funksies in JavaScript
In JavaScript (in ander tale is dit meestal nie so nie) sal veranderlikes wat buite 'n funksie gedefinieër word, binne daardie funksie sigbaar wees. Sulke veranderlikes word globale veranderlikes genoem. Laat ons na 'n voorbeeld kyk:
let num = 1; // veranderlike buite funksie
function func() {
console.log(num); // veranderlike num is sigbaar binne funksie
}
func(); // sal 1 uitvoer
Eintlik moet die veranderlike gedefinieër word nie voor die definisie van die funksie nie, maar voor die roeping daarvan:
function func() {
console.log(num);
}
let num = 1; // veranderlike buite funksie
func(); // sal 1 uitvoer
As jy die waarde van die veranderlike verander en daarna
die funksie elke keer roep - sal console.log elke
keer verskillende resultate lewer:
function func() {
console.log(num);
}
let num; // verklaar die veranderlike
num = 1; // stel waarde 1
func(); // sal 1 uitvoer
num = 2; // stel waarde 2
func(); // sal 2 uitvoer
As ons verskeie funksies het, sal die globale veranderlike beskikbaar wees in elk van hierdie funksies:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // sal 1 uitvoer
func2(); // sal 1 uitvoer
As een van die funksies veranderinge aan die globale veranderlike maak, sal daardie veranderlike verander in alle funksies wat dit gebruik:
function func1() {
console.log(num);
num++; // verander globale veranderlike
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // sal 1 uitvoer
func2(); // sal 2 uitvoer
Aangesien enige funksie die globale veranderlike maklik kan verander, is die gebruik daarvan 'n broeineste van moeilik-opspoorbare foute. Om hierdie rede moet die gebruik van globale veranderlikes in die skrip tot 'n minimum beperk word. Dit is wenslik dat daar glad geen of die minste moontlike hoeveelheid is.
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgevoer sal word:
let num = 1;
function func() {
console.log(num);
}
func();
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgevoer sal word:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Bepaal, sonder om die kode te laat loop, wat in die konsole uitgevoer sal word:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();