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();