JavaScript'te Fonksiyonlarda Global Değişkenler
JavaScript'te (diğer dillerde çoğunlukla böyle değildir) fonksiyonun dışında tanımlanan değişkenler, fonksiyonun içinden görülebilir. Bu tür değişkenlere global değişkenler denir. Bir örnekle görelim:
let num = 1; // fonksiyonun dışındaki değişken
function func() {
console.log(num); // num değişkeni fonksiyon içinde görülebilir
}
func(); // 1 yazdırır
Aslında değişkenin, fonksiyonun tanımından önce değil, çağrılmasından önce tanımlanmış olması gerekir:
function func() {
console.log(num);
}
let num = 1; // fonksiyonun dışındaki değişken
func(); // 1 yazdırır
Değişkenin değerini değiştirip ardından
her seferinde fonksiyonu çağırırsak - console.log
her seferinde farklı sonuçlar yazdıracaktır:
function func() {
console.log(num);
}
let num; // değişkeni tanımla
num = 1; // değeri 1 olarak ayarla
func(); // 1 yazdırır
num = 2; // değeri 2 olarak ayarla
func(); // 2 yazdırır
Eğer birden fazla fonksiyonumuz varsa, global değişken bu fonksiyonların her birinde kullanılabilir olacaktır:
function func1() {
console.log(num);
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // 1 yazdırır
func2(); // 1 yazdırır
Eğer fonksiyonlardan birinde global değişkende değişiklik yapılırsa, bu değişken, bu değişkeni kullanan tüm fonksiyonlarda değişecektir:
function func1() {
console.log(num);
num++; // global değişkeni değiştir
}
function func2() {
console.log(num);
}
let num = 1;
func1(); // 1 yazdırır
func2(); // 2 yazdırır
Fonksiyonlardan herhangi biri kolayca global değişkeni değiştirebileceğinden, bunların kullanımı tespiti zor hatalar için bir kaynak oluşturur. Bu nedenle, global değişkenlerin komut dosyası içinde kullanımı en aza indirilmelidir. Hiç olmamaları veya en az sayıda olmaları tercih edilir.
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let num = 1;
function func() {
console.log(num);
}
func();
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let num = 1;
function func() {
console.log(num);
}
num = 2;
func();
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
function func() {
console.log(num);
}
let num;
num = 1;
func();
num = 2;
func();