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:

javascriptlet 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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:

javascriptfunction 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.

Задание 1

Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

func();
Задание 2

Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:

javascriptlet num = 1;
    
function func() {
  console.log(num);
}

num = 2;
func();
Задание 3

Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:

javascriptfunction func() {
  console.log(num);
}

let num;

num = 1;
func();

num = 2;
func();