Глобални променливи во функции во JavaScript
Во JavaScript (во другите јазици најчесто не е така) променливите дефинирани надвор од функцијата, ќе бидат видливи внатре во таа функција. Ваквите променливи се нарекуваат глобални. Да погледнеме на пример:
javascriptlet num = 1; // променлива надвор од функцијата
function func() {
console.log(num); // променливата num е видлива внатре во функцијата
}
func(); // ќе испише 1
Всушност, променливата треба да биде дефинирана не пред дефинирањето на функцијата, туку пред нејзиното повикување:
javascriptfunction func() {
console.log(num);
}
let num = 1; // променлива надвор од функцијата
func(); // ќе испише 1
Ако се менува вредноста на променливата и после тоа
секој пат се повикува функцијата - console.log секој
пат ќе испишува различни резултати:
javascriptfunction func() {
console.log(num);
}
let num; // ја декларираме променливата
num = 1; // задаваме вредност 1
func(); // ќе испише 1
num = 2; // задаваме вредност 2
func(); // ќе испише 2
Ако имаме повеќе функции, тогаш глобалната променлива ќе биде достапна во секоја од овие функции:
javascriptfunction func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // ќе испише 1
func2(); // ќе испише 1
Ако во една од функциите се случат промени со глобалната променлива, тогаш таа променлива ќе се промени во сите функции што ја користат таа променлива:
javascriptfunction func1() {
console.log(num);
num++; // ја менуваме глобалната променлива
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // ќе испише 1
func2(); // ќе испише 2
Бидејќи секоја од функциите лесно може да ја промени глобалната променлива, нивното користење претставува рассадник на тешко уловливи грешки. Поради оваа причина, користењето на глобални променливи во скрипта треба да се сведе на минимум. Пожелно е да ги нема воопшто или да има најмалку можен број.
Определи, без да ја стартуваш кодот, што ќе се испише во конзолата:
javascriptlet num = 1;
function func() {
console.log(num);
}
func();
Определи, без да ја стартуваш кодот, што ќе се испише во конзолата:
javascriptlet num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Определи, без да ја стартуваш кодот, што ќе се испише во конзолата:
javascriptfunction func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();