Dinamik olarak yazılan JavaScript, bir değerin yokluğunu birçok başka dile göre farklı şekilde ele alır. undefined
anahtar sözcüğü ile temsil edilen bu incelik, sağlam ve güvenilir kod yazmak için çok önemlidir. Bu makale, undefined
‘ı, ortaya çıktığı yaygın senaryoları ve null
‘dan nasıl farklı olduğunu ele almaktadır.
İçindekiler
undefined
‘ı Anlamak
JavaScript’te, undefined
, bir değişkenin bildirilmiş ancak bir değere atanmamış olduğunu gösteren ilkel bir değerdir. Bu, bildirilmemiş bir değişkenden farklıdır; bildirilmemiş bir değişkene erişim denemesi bir ReferenceError
hatası oluşturur. undefined
, bir hata durumu değil, eksik bir değeri ifade eder. JavaScript, bildirilmiş ancak başlatılmamış değişkenlere otomatik olarak undefined
atar.
undefined
Üreten Senaryolar
Birkaç durum, bir fonksiyonun veya ifadenin undefined
döndürmesine neden olabilir:
return
ifadeleri olmayan fonksiyonlar: Açıkça birreturn
ifadesi kullanmayan fonksiyonlar örtük olarakundefined
döndürür.- Mevcut olmayan özelliklere erişim: Bir nesnede mevcut olmayan bir özelliğe erişim denemesi
undefined
sonucunu verir. - Dizinin sınırları dışındaki elemanlara erişim: Bir dizinin uzunluğundan büyük veya ona eşit bir indeks kullanarak bir dizi elemanına erişim
undefined
döndürür. - Başlatılmamış değişkenler: Bahsedildiği gibi, bildirilmiş ancak başlatılmamış bir değişken
undefined
değerini tutar. delete
operatörü: Bir nesne özelliği üzerindedelete
kullanımı, özelliği kaldırır ve yerineundefined
bırakır.
Bu senaryoları gösteren bazı kod örnekleri:
function myFunction() {
// Return ifadesi yok
}
let result = myFunction();
console.log(result); // Çıktı: undefined
let myObject = { name: "John" };
console.log(myObject.age); // Çıktı: undefined
let myArray = [1, 2, 3];
console.log(myArray[3]); // Çıktı: undefined
let myVariable;
console.log(myVariable); // Çıktı: undefined
let myObject2 = { name: "John", age: 30 };
delete myObject2.age;
console.log(myObject2.age); // Çıktı: undefined
undefined
ve null
Hem undefined
hem de null
anlamlı bir değerin yokluğunu temsil eder, ancak ince bir şekilde farklılık gösterirler:
undefined
: Bir değişkenin bildirilmiş ancak bir değere atanmamış olduğunu gösterir. JavaScript tarafından otomatik olarak atanır.null
: Bir değerin kasıtlı yokluğunu temsil eder. Programcı tarafından açıkça atanır.
Sıklıkla birbirinin yerine kullanılsalar da, undefined
istemsiz bir yokluğu, null
ise kasıtlı bir atamayı işaret eder. Bunlar farklı değerlerdir; undefined === null
, false
‘tur.
En İyi Uygulamalar
undefined
‘ı anlamak, hata ayıklama ve temiz, tahmin edilebilir kod yazmak için çok önemlidir. Uygun olduğunda açıkça null
kullanmak, kod okunabilirliğini ve sürdürülebilirliğini artırır. Örtük undefined
değerlerine güvenmekten kaçının; bunun yerine, bir değerin kasıtlı yokluğunu belirtmek için null
atayın. Bu, kod açıklığını artırır ve potansiyel hataları azaltır.