JavaScriptтеги функциялардагы глобалдык өзгөрмөлөр
JavaScriptте (башка тилдерде көбүнчө мындай эмес) функциянын сыртында аныкталган өзгөрмөлөр, бул функциянын ичинде көрүнөт. Мынай өзгөрмөлөр глобалдык деп аталат. Мисал аркылуу карап көрөлү:
let num = 1; // функциянын сыртындагы өзгөрмө
function func() {
console.log(num); // num өзгөрмөсү функциянын ичинде көрүнөт
}
func(); // 1 чыгарат
Чындыгында, өзгөрмө функцияны аныктоодон эмес, аны чакыруудан мурун аныкталышы керек:
function func() {
console.log(num);
}
let num = 1; // функциянын сыртындагы өзгөрмө
func(); // 1 чыгарат
Эгерде өзгөрмөнүн маанисин өзгөртүп, андан кийин ар бир жолу функцияны чакырсаңыз - console.log ар
жолу ар кандай натыйжаларды чыгарат:
function func() {
console.log(num);
}
let num; // өзгөрмөнү жарыялайбыз
num = 1; // 1 маанисин беребиз
func(); // 1 чыгарат
num = 2; // 2 маанисин беребиз
func(); // 2 чыгарат
Эгерде бизде бир нече функция болсо, анда глобалдык өзгөрмө бул функциялардын ар биринде жеткиликтүү болот:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // 1 чыгарат
func2(); // 1 чыгарат
Эгерде функциялардын биринде глобалдык өзгөрмө менен өзгөрүүлөр болсо, анда бул өзгөрмө бул өзгөрмөнү колдонгон бардык функцияларда өзгөрөт:
function func1() {
console.log(num);
num++; // глобалдык өзгөрмөнү өзгөртөбүз
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // 1 чыгарат
func2(); // 2 чыгарат
Функциялардын кайсынысы болбосун глобалдык өзгөрмөнү оңой эле өзгөртө ала тургандыктан, аларды колдонуу табылбай калуучу каталардын чөйрөсүн түзөт. Бул себептен, скриптте глобалдык өзгөрмөлөрдү колдонууну минималдаштыруу керек. Алардын жалпысынан болбогону же эң аз санда болгону сунуш кылынат.
Кодду иштетпей эле, консолго эмне чыгарылаарын аныктаңыз:
let num = 1;
function func() {
console.log(num);
}
func();
Кодду иштетпей эле, консолго эмне чыгарылаарын аныктаңыз:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Кодду иштетпей эле, консолго эмне чыгарылаарын аныктаңыз:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();