Глобалӣ тағирёбандаҳо дар функсияҳои 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();