JavaScript Değişken Kapsamları

Görkem Apaydın
2 min readAug 30, 2021

--

JavaScript’te de değişkenin kapsam alanı diğer programlama dillerinin birçoğunda olduğu gibi kod bloğuyla bağlantılıdır. Genel kapsama ve lokal kapsama alanları olarak ikiye ayrılır. Bu yazımızda bu iki kapsama alanını inceleyeceğiz. Farklarının neler olduğunu sizlere anlatmaya çalışacağım.

Genel Kapsamdaki Değişkenler

JavaScript kodunun herhangi bir yerinden erişilebilen değişkenlerdir. Kodun her yerinden bu değişkenlere erişim sağlanabilir.

Lokal Kapsamdaki Değişkenler

Lokal değişkenler sadece tanımlandıkları kod bloğu içerisinde kullanılabilirler. Kod bloğunun dışından erişmeye çalıştığınız zaman bu değişkenlere erişemezsiniz. Bilgisayar bunu hiç tanımlanmamış gibi algılar. Genelde kullanılan değişken ismi lokalde tekrar kullanılabilir. Geneldeki kapsamda olan değişken lokalde tekrar kullanıldığında lokalde kullanılan daha önceliklidir.

Genel ve Lokal Kapsamın Farkı

Genel ve lokal kapsamın farkını tam anlamak için aşağıdaki kod örneğini inceleyelim:

Yukarıdaki kodun çıktısı aşağıdaki gibi olur:

JSscope.js Kodunun Console Çıktısı

Yukarıda da gördüğümüz kodları açıklayalım, genel kapsamda oluşturduğumuz name değişkenine ‘Gorkem’ stringini atadık. Console’a yazdırdık ve ekran çıktısı olarak ‘Genel Kapsam:’ ‘Gorkem’ görüntüsünü aldık.

İkinci olarak test isimli bir fonksiyon tanımladık. Burada name değişkenini tekrar tanımladık ve Console’a yazdırdık. Ekran çıktısı olarak ‘Lokal Kapsam:’ ‘George’ görüntüsünü aldık.

Son olarak test fonksiyonunda tanımladığımız surname değişkenini genel kapsamda Console’a yazdırmaya çalıştık. Ancak hatayla karşılaştık. Hatamız ise surname is not defined oldu. Yani tanımlanmamış değişken hatası aldık.

Örneklerde de gördüğümüz gibi genelde tanımladığımız değişkeni lokalde değiştirerek kullanabildik. Ancak lokalde tanımladığımız değişkeni genelde kullanamadık. Bu değişken kapsam alanlarını iyi bilmek gerekiyor. İlerleyen dönemlerde sorun çıkmaması için :)

Bu yazımızın da sonuna geldik. İyi günler diliyorum..

--

--