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