Исти имиња на променливите во функциите во JavaScript
Нека и надвор од функцијата, и внатре има променлива
num. Во овој случај, сите промени
со локалната променлива num никако не
влијаат на глобалната променлива num:
let num = 1; // глобална променлива
function func() {
let num = 2; // локална променлива
console.log(num);
}
func(); // ја повикуваме функцијата, ќе испише 2
console.log(num); // ќе испише 1 - глобалната променлива не се промени
Но, ако заборавиме да ја декларираме локалната променлива
num преку let, тогаш внатре во функцијата
нема да се создаде локална променлива num,
туку едноставно ќе се промени глобалната променлива:
let num = 1;
function func() {
num = 2; // заборавивме да напишеме let - ја менуваме надворешната променлива
console.log(num);
}
func(); // ја повикуваме функцијата, ќе испише 2
console.log(num); // ќе испише 2 - променливата се промени
Овде може да има две ситуации: или ние навистина
сакавме да ја смениме глобалната променлива (тогаш
сè е во ред), или заборавивме let и случајно
ја сменивме глобалната променлива.
Вториот случај е тешко откривачка грешка,
која води до непредвидливо однесување на скриптата.
Затоа секогаш, при внесување на нова променлива, декларирајте ја
преку let.
Определете, без да ја стартувате кодот, што ќе испише во конзолата:
let num = 1;
function func() {
num = 2;
}
func();
console.log(num);
Определете, без да ја стартувате кодот, што ќе испише во конзолата:
let num = 1;
function func() {
let num = 2;
}
func();
console.log(num);