JavaScript'de Değişkenler

Javascript’te değişken tanımlamak için var, let ve const anahtar kelimeleri kullanılır. Bu anahtar kelimeleri kullanırken doğru seçim yapmak kodun okunabilirliği ve yönetilebilirliği açısından önemlidir. Bu yazıda, bu üç anahtar kelimenin ne zaman ve nasıl kullanılacağı hakkında bilgi edineceksiniz.

var

var, Javascript’in en eski değişken tanımlama anahtar kelimesidir. Bu anahtar kelimesiyle tanımlanan değişkenlerin kapsamı, tanımlandığı fonksiyonun kapsamı veya en üst düzey (global) kapsamdır. Yani var ile tanımlanan bir değişkenin fonksiyonun dışında tanımlanması durumunda, bu değişken tüm kodda erişilebilir hale gelir.

var x = 10;
function sayHello() {
  var y = 5;
  console.log(x + y);
}
sayHello(); // 15
console.log(x); // 10

Yukarıdaki örnekte var anahtar kelimesiyle tanımlanan x değişkeni fonksiyonun dışında tanımlanmıştır ve tüm kodda erişilebilir hale gelmiştir. y değişkeni ise sayHello() fonksiyonunun içinde tanımlanmıştır ve sadece bu fonksiyonun kapsamı içinde erişilebilirdir.

var anahtar kelimesiyle tanımlanan değişkenler, tanımlandıkları kapsamda herhangi bir yerde tekrar tanımlanabilirler. Bu özellik, hatalı kodların ortaya çıkmasına neden olabilir.

var x = 10;
var x = 20; // Hata vermez
console.log(x); // 20

let

let, ECMAScript 6 ile birlikte tanıtılan bir anahtar kelimedir. var ile benzer şekilde değişken tanımlamak için kullanılır. Ancak let ile tanımlanan değişkenlerin kapsamı, tanımlandığı blok (if, for, while, vb.) veya fonksiyon kapsamıdır.

function sayHello() {
  let x = 10;
  if (true) {
    let y = 5;
    console.log(x + y);
  }
  console.log(x); // 10
  console.log(y); // Hata verir
}
sayHello(); // 15

Yukarıdaki örnekte let anahtar kelimesiyle tanımlanan x ve y değişkenleri sayHello() fonksiyonunun kapsamı içinde.

Diğer bir farklılık da bu değişkenlerin "scope"larıdır. Bir değişkenin kapsamı, değişkenin nerede tanımlandığına ve hangi anahtar kelimeyle tanımlandığına bağlıdır.

Var anahtar kelimesi ile tanımlanan değişkenlerin kapsamı, fonksiyon kapsamıdır. Yani bir değişken fonksiyon içinde tanımlandıysa, o değişken yalnızca o fonksiyon içinde kullanılabilir.

function example() {
  var x = 10;
  console.log(x); // 10
}
console.log(x); // ReferenceError: x is not defined

Let ve const anahtar kelimeleri ile tanımlanan değişkenlerin kapsamı, blok kapsamıdır. Yani bir değişken herhangi bir süslü parantez içinde tanımlandıysa, yalnızca o süslü parantez içinde kullanılabilir.

if (true) {
  var x = 10;
  let y = 20;
  const z = 30;
  console.log(x, y, z); // 10 20 30
}
console.log(x); // 10
console.log(y); // ReferenceError: y is not defined
console.log(z); // ReferenceError: z is not defined

Görüldüğü gibi, var anahtar kelimesi ile tanımlanan değişkenler blok kapsamına sahip değildir. Bu nedenle, bir değişkenin farklı yerlerde farklı değerler alması gibi hatalı durumlar ortaya çıkabilir.

Let ve const anahtar kelimeleri, kodun daha okunaklı ve hatasız olmasını sağlar. Ancak, let anahtar kelimesi ile tanımlanan değişkenlerin değeri sonradan değiştirilebilirken, const anahtar kelimesi ile tanımlanan değişkenlerin değeri değiştirilemez. Bu nedenle, eğer bir değişkenin değerinin değişmemesi gerekiyorsa const kullanmak daha uygundur.

Sonuç olarak, JavaScript'te değişken tanımlamak için var, let ve const anahtar kelimeleri kullanılır. Bunların her biri farklı kapsamlara sahiptir ve ihtiyaca göre seçilir.