Vigezo vya Ulimwengu Katika Kazi katika JavaScript
Katika JavaScript (katika lugha nyingine mara nyingi sio hivyo) vigezo vilivyofafanuliwa nje ya kazi, vitaonekana ndani ya kazi hiyo. Vigezo kama hivyo huitwa vigezo vya ulimwengu. Tutaangalia kwa mfano:
let num = 1; // kigezo nje ya kazi
function func() {
console.log(num); // kigezo num kinaonekana ndani ya kazi
}
func(); // inatoa 1
Kwa kweli kigezo kinapaswa kufafanuliwa sio kabla ya ufafanuzi wa kazi, lakini kabla ya kiitwacho:
function func() {
console.log(num);
}
let num = 1; // kigezo nje ya kazi
func(); // inatoa 1
Ikiwa utabadilisha thamani ya kigezo na baada ya hapo
kila wakati ukiita kazi - console.log kila
wakati utatoa matokeo tofauti:
function func() {
console.log(num);
}
let num; // tunatanga kigezo
num = 1; // tunaweka thamani 1
func(); // inatoa 1
num = 2; // tunaweka thamani 2
func(); // inatoa 2
Ikiwa tuna kazi nyingi, basi kigezo cha ulimwengu kitawezekana katika kila moja ya hizi kazi:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // inatoa 1
func2(); // inatoa 1
Ikiwa katika moja ya kazi kutakuwapo na mabadiliko na kigezo cha ulimwengu, basi kigezo hicho kitabadilika katika kazi zote, zikitumia kigezo hicho:
function func1() {
console.log(num);
num++; // tunabadilisha kigezo cha ulimwengu
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // inatoa 1
func2(); // inatoa 2
Kwa kuwa kazi yoyote kwa urahisi inaweza kubadilisha kigezo cha ulimwengu, basi matumizi yake yanawakilisha chanzo cha makosa yasiyoonekana kwa urahisi. Kwa sababu hii, matumizi ya vigezo vya ulimwengu katika hati ya maelekezo inahitaji kupunguzwa kwa kiwango cha chini. Inafaa kwamba hata hayawakuwapo kabisa au yalikuwapo idadi ndogo zaidi.
Amua, bila kukimbiza kificho, nini kitatolewa kwenye koni:
let num = 1;
function func() {
console.log(num);
}
func();
Amua, bila kukimbiza kificho, nini kitatolewa kwenye koni:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Amua, bila kukimbiza kificho, nini kitatolewa kwenye koni:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();