23.04.2023

4

Like

526

Views

JavaScript’de Değişken Tanımlama Rehberi: Var, Let ve Const

VAR

Var anahtar kelimesi JavaScript’te ilk kez kullanılmış olan ve eski bir yöntemdir.

Global Scope veya Function Scope’ta deklarasyon eder. Var ile tanımlanan değişkenlerin özellikleri:

  • Alanı: Var tanımlanmış değişkenlerin alanı fonksiyon seviyesindedir. Yani, tanımlanmış bir var değişkeni fonksiyon içinde tanımlanmışsa, fonksiyon dışında erişilemez. Fonksiyon dışında erişilmeye çalışıldığında ReferenceError hatası alınır.
  • Değiştirilebilirlik: Var tanımlanmış değişkenler değiştirilebilir. Yani, tanımlanmış bir var değişkenin değeri daha sonra değiştirilebilir
  • Hoisting: Var tanımlanmış değişkenler hoisting adı verilen bir yapıya sahiptir. Bu yapıya göre, var tanımlanmış değişkenler fonksiyon içinde tanımlanmalarına rağmen, fonksiyonun en başında tanımlanmış gibi döndürür. Bu, var değişkenlerinin fonksiyon içinde tanımlanmadan önce de kullanılabileceği anlamına gelir.

Örnek:

var num1= 10;
console.log(num1); // 10

num1 = 20;
console.log(num1); // 20

function example() {
var num2 = 30;
console.log(num2); // 30
}

example();
console.log(num2); // ReferenceError: num2 is not defined

Bu örnekte, num1 değişkeni dışarıdan tanımlanır ve değeri değiştirilir. num2 değişkeni ise fonksiyon içinde tanımlanır ve fonksiyonun çağrılması ile num2 değerinin değeri 30 olarak çıktı verir. Fonksiyon dışında num2 değerinin erişilmeye çalışılması, “num2 is not defined” hatasına neden olur çünkü num2 değişkeni sadece fonksiyon içinde tanımlanmış ve kullanılabilir.

Var tanımlanmış bir değişkenin değeri daha sonra değiştirilebilir. Bu, esnek programlama yapmak için kullanışlıdır, ancak bu özellik aynı zamanda kodun okunmasını zorlaştırabilir.

Sonuç olarak, var değişken tanımlaması eski versiyonların ve JavaScript’deki en eski değişken tanımlamalarından biridir. Yeni versiyonlar için let ve const gibi daha güncel tanımlama yöntemleri kullanılmalıdır. Ancak, var değişken tanımlamaları hala JavaScript programlama dünyasında kullanılır ve anlaşılması gereken önemli bir konudur.

LET

Let anahtar kelimesi ECMAScript 6 ile birlikte gelmiştir ve var’ın yerini almıştır. Let ile tanımlanmış değişkenlerin özellikleri:

  • Block Scope’a (örneğin, for döngüsü) göre sınırlıdır ve değiştirilebilir. Başka bir scope’tan erişilmek istenirse ReferenceErroe hatası alınır.
  • Aynı isim ile tekrardan aynı blokta tanımlanamaz.
  • Farklı block’larda aynı isimle tanımlanabilir.

Örnek:

let x = 10;
console.log(x); // 10

x = 20;
console.log(x); // 20

if (true) {
let y = 30;
console.log(y); // 30
}

console.log(y); // ReferenceError: y is not defined

Bu örnekte, x değişkeni dışarıdan tanımlanır ve değeri değiştirilir. Y değişkeni ise “if” bloğu içinde tanımlanır ve bloğun çalışması ile y değerinin değeri 30 olarak çıktı verir. Blok dışında y değerinin erişilmeye çalışılması, “y is not defined” hatasına neden olur çünkü y değişkeni sadece bloğun içinde tanımlanmış ve kullanılabilir.

“let” kelimesinin kullanımı, kodun okunabilirliğini ve anlaşılabilirliğini artırır ve hataların önüne geçmeyi sağlar.

CONST

Const anahtar kelimesi de ECMAScript 6 ile birlikte gelmiştir.

  • Block Scope’ta tanımlı, değeri sonradan değiştirilemeyen değişkenleri tanımlamak için kullanılır.

Örnek:

const ad = "Deniz";
console.log(ad); // Deniz

ad = "Dogukan"; // TypeError: Assignment to constant variable.

Yukarıdaki örnekte, “ad” değişkenini ilk olarak “Deniz” olarak tanımladık ve daha sonra değerini “Dogukan” olarak değiştirmeye çalıştığımızda bir hata oluştu, çünkü const ile tanımlanmış bir değişkenin değerini değiştiremeyiz.

Const ile tanımladığınız veri yapıları (örneğin array veya list) değiştirilemez. Bunun amacı programınızın beklenen şekilde çalışmasını sağlamak ve istenmeden değişikliklere karşı korunmaktır. Aksine, let ile tanımladığınız veri yapıları değiştirilebilir ve kodun ilerleyen yerlerinde değiştirilebilir. Bu durumda, yanlış bir kod yazma riski mevcuttur. Özellikle büyük ve kapsamlı projelerde, veri yapılarının değişmemesi gereken durumlar için const kullanmak daha mantıklıdır.

JavaScript
Node.js

Comments

You need to log in to be able to comment!

Deniz Dağlı

Bilgisayar mühendisliği 4. sınıf öğrencisiyim. Burada güncel teknolojileri rahatça öğrenme şansına sahip olduğumdan dolayı varım.

Location

Kütahya, TR

Education

Bilgisayar Mühendisliği - Dumlupınar

Job Experience

Yazılım Stajyeri - Retter.io

© 2021 Patika Dev

facebook
twitter
instagram
youtube
linkedin