Sobes.tech
Junior

Bildirilmemiş (undeclared) değişkenler nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

JavaScript'te bildirilmemiş değişkenler, var, let veya const anahtar kelimeleri kullanılarak bildirilmemiş olan ve değer atanan değişkenlerdir.

// Açıkça bildirim
let bildirilenDegisken = "Ben bildirildim";

// Gizli atama (kısıtlamasız modda tanımlanmamış bir değişken oluşturur)
// `'use strict'` modunda bu bir ReferenceError hatasına yol açar
bildirilmemişDegisken = "Ben bildirilmedim";

Bildirilmemiş değişkenlerin davranışı, kodun yürütüldüğü moda bağlıdır:

  • Kısıtlamasız mod: Bir değişkene değer atamak, bu isimle global bir değişken oluşturur (tarayıcılar için Window'da). Bu kötü bir uygulamadır çünkü küresel alanı kirletir ve hata ayıklamayı zorlaştırır.
  • Kısıtlamalı mod ('use strict'): Bildirilmemiş bir değişkene değer atamak, ReferenceError hatası verir. Bu davranış tercih edilir çünkü yanlışlıkla küresel değişkenler oluşturulmasını engeller ve daha öngörülebilir kod sağlar.

Bir değişkenin bildirilip bildirilmediğini typeof kullanarak kontrol edebilirsiniz. Kısıtlamasız modda, bildirilmemiş bir değişken 'undefined' türüne sahip olur, tıpkı bildirilmiş ama başlatılmamış bir değişken gibi.

let başlatılmışAmaTanımsız;
// console.log(typeof başlatılmışAmaTanımsız); // => 'undefined'

// Kısıtlamasız modda
// bildirilmeyenDegisken = "Test";
// console.log(typeof bildirilmeyenDegisken); // => 'undefined'

// Değişkenin var olup olmadığını kontrol etmeden önce
if (typeof potansiyelBildirilmeyen !== 'undefined') {
    // potansiyelBildirilmeyen ile çalışma kodu
}

Bildirilmemiş değişkenlerin kullanımı potansiyel hatalara yol açar ve kodun bakımını zorlaştırır. Her zaman let, const veya var kullanarak değişkenleri açıkça bildirmek önerilir (ancak var'ın kendi özellikleri vardır ve modern kodda let ve const tercih edilir). 'use strict' modunun kullanılması, bu tür sorunların önlenmesi için standart bir uygulamadır.