Dieselfde veranderlike name in funksies in JavaScript
Kom ons sê daar is 'n veranderlike
num beide buite en binne die funksie.
In hierdie geval sal enige veranderinge
aan die plaaslike veranderlike num geen
invloed hê op die globale veranderlike num nie:
let num = 1; // globale veranderlike
function func() {
let num = 2; // plaaslike veranderlike
console.log(num);
}
func(); // roep die funksie, sal 2 uitvoer
console.log(num); // sal 1 uitvoer - globale veranderlike het nie verander nie
Maar, as ons vergeet om die plaaslike veranderlike
num te verklaar met let, sal daar
binne die funksie nie 'n plaaslike veranderlike num geskep word nie,
maar sal die globale veranderlike eenvoudig verander word:
let num = 1;
function func() {
num = 2; // vergeet om let te skryf - verander die eksterne veranderlike
console.log(num);
}
func(); // roep die funksie, sal 2 uitvoer
console.log(num); // sal 2 uitvoer - veranderlike het verander
Hier kan daar twee situasies wees: óf ons
wou werklik die globale veranderlike verander (dan
is alles in orde), óf ons het let vergeet
en het per ongeluk die globale veranderlike verander.
Die tweede geval is 'n moeilik-opspoorbare fout,
wat lei tot onvoorspelbare gedrag van die skrip.
Verklaar daarom altyd, wanneer jy 'n nuwe veranderlike invoer,
dit met let.
Bepaal, sonder om die kode uit te voer, wat in die konsole uitgevoer sal word:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Bepaal, sonder om die kode uit te voer, wat in die konsole uitgevoer sal word:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);