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