JavaScript

JavaScript’te “var”, “let” ve “const” Arasındaki Farklar Nelerdir?

JavaScript’te var, let ve const, değişkenleri tanımlamak için kullanılan anahtar kelimelerdir. Ancak aralarında önemli farklar bulunur. Bu farklar, genel hatlarıyla kapsam (scope), hoisting, ve yeniden atama kuralları üzerine kuruludur.

Kapsam (Scope) Farkları

var: Fonksiyon kapsamlıdır (function-scoped). Yani, var ile tanımlanan bir değişken, tanımlandığı fonksiyon içerisinde her yerden erişilebilir. Fonksiyon dışında tanımlanırsa, global kapsamda olur. Örneğin:

let ve const: Blok kapsamlıdır (block-scoped). Yani, bu anahtar kelimelerle tanımlanan değişkenler, sadece tanımlandıkları blok içerisinde (örneğin bir if bloğu, for döngüsü) erişilebilir. Örneğin:

Hoisting Farkları

  • var: Hoisting’e tabidir. var ile tanımlanan değişkenler, tanımlı oldukları kapsamın başına çıkarılır (hoisted), ancak değer ataması yapılmaz.
  • let ve const: Hoisting’e teknik olarak tabidirler, ama “temporal dead zone” nedeniyle, tanımlandıkları satıra kadar erişilemezler.

Yeniden Atama ve Yeniden Tanımlama

var: Hem yeniden atamaya hem de yeniden tanımlamaya izin verir.

let: Yeniden atamaya izin verir, ama aynı kapsam içinde yeniden tanımlanamaz.

const: Hem yeniden atamaya hem de yeniden tanımlamaya izin vermez. Sabit bir değer tanımlamak için kullanılır.

Bu farklar, var, let, ve const‘ın kullanım yerlerini ve amaçlarını belirler. Genel olarak, let ve const, modern JavaScript kodlarında tercih edilir çünkü daha katı kapsam kuralları sayesinde yanlışlıkla yapılabilecek hataları azaltırlar. const, değişmeyecek değerler için kullanılırken; let, değeri değişebilecek değişkenler için kullanılır. var ise eski JavaScript kodlarında sıkça rastlanır ve daha esnek bir kapsam ve yeniden tanımlama imkanı sunar.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

😔 Reklam Engelleyicisi 😔

Sitenin varlığını sürdürebilmesi adına reklam engelleyicinizi (Adblocker) kapatmanızı rica ediyoruz 😔