Merhaba arkadaşlar serinin bu bölümünde JavaScript'de undefined veri türünü ve veri tipini inceleyeceğiz.
Yazıda:
- Undefined veri türüne ve veri tipine.
- Undefined veri tipine sahip bir değişkenin boolean olarak sahip olduğu değere.
- Undefined ile empty ve null arasındaki farklara.
Değineceğim.
İyi okumalar dilerim.
JavaScript'de undefined veri türü bir değişkenin tanımlanmamış olduğunu veya değişkene bir değerin atanmamış olduğunu ifade eder.
Undefined veri türü primitive özelliklidir ve immutable yapıdadırlar yani değiştirilemezler.
JavaScript'de bir değişken deklarasyonu yapılırken içeriğine değer depolanmamış ise varsayılan olarak undefined değeri depolanacaktır.
undefined
keyword'u kullanılarak da undefined veri tipine sahip bir değişken oluşturulabilir.
Örnek
%%javascript
// x değişkeni varsayılan olarak undefined değerine sahip olacaktır.
let x;
// Aynı zamanda undefined keyword'u kullanarak da undefined veri türüne sahip değişken oluşturabiliriz.
let y=undefined;
// Her iki değişken için de "undefined" ifadesi konsola yazdırılır.
console.log (x);
console.log (y);
undefined
undefined
❗ Undefined identifier (değişken ismi) olarak kullanılabilir fakat bu durumda kodları anlamak veya debug işlemlerinde zorluklar ortaya çıkar.
Örnek
%%javascript
// Global scope içerisinde iki tane fonksiyonumuz var.
// İlk fonksiyonumuzun parametresi yok.
(() => {
// undefined isminde bir değişken tanımlanıyor ve içeriğine "foo" string'i depolanıyor.
const undefined = "foo";
// undefined değişkeninin depoladığı veri tipi string olacak ve konsola "foo, string" ifadesi yazdırılacaktır.
console.log(undefined, typeof undefined);
})
// İlk fonksiyonumuz çağrılıyor.
();
// İkinci fonksiyonumuzun undefined isminde bir parametresi var.
((undefined) => {
// Konsola undefined parametresinin depoladığı veri ve veri tipi yazdırılacaktır.
console.log(undefined, typeof undefined);
})
// İkinci fonksiyona "EA" adında bir string gönderdik.
("EA");
foo string
EA string
Yukarıda görüldüğü gibi kodları analiz etmek zorlaştı.
Undefined veri türüne sahip bir değişkenin boolean değeri false
olacaktır. Detaylı bilgi almak için Sonucu Daima false Olan İfadeler başlığınız ziyaret edebilirsiniz.
Örnek
%%javascript
let x;
/**
* Boolean() fonksiyonu kullanarak bir değişkenin boolean olarak tuttuğu değeri öğrenebiliriz.
* Konsola "false" yazdırılacaktır.
*/
console.log(Boolean(x));
false
Bir metotta (fonksiyonda) return
keyword'u açıkça ifade edilmemişse metot varsayılan olarak undefined ifadesini geri döndürür.
%%javascript
function drive(){
// Metot bir statement döndürmüyor.
}
// Konsola "undefined" yazdırılacaktır.
console.log(drive())
function swim(){
return "swim performed"
}
// Konsola "swim performed" yazdırılacaktır.
console.log(swim())
undefined
swim performed
➖ Undefined ile Null Arasındaki Fark
-
Undefined özellikli değişkenin varsayılan olarak depoladığı değer yine undefined'dır. Null değeri depolayan değişken herhangi bir değere sahip değildir. Bu bakımdan null ile undefined birbirlerinden ayrılırlar.
-
Undefined özelliğine sahip değişkenin veri tipi undefined'dır, null özellikli bir değişkenin veri tipi object'dir.
Örnek
%%javascript
// x'in varsayılan değeri undefined olacaktır.
let x;
// x' in depoladığı değer undefined'dır. Konsola "undefined" yazdırılır.
console.log(x);
// y değişkeni herhangi bir değere sahip değildir.
let y = null;
// y 'nin depoladığı herhangi bir değer yoktur. Bunu belirtmek için konsola "null" ifadesi yazdırılır.
console.log(y);
// "undefined" iletisi konsola yazdırılır, x'in veri tipi undefined'dır.
console.log(typeof x);
// "object" iletisi konsola yazdırılır, null özellikli variable'ın veri tipi object'dir.
console.log(typeof y);
undefined
null
undefined
object
➖ Undefined ile Empty Arasındaki Fark
Empty özellikli bir değişkenin veri tipi string özelliklidir. undefined özellikli bir değişkenin veri tipi ise object özelliklidir.
Örnek
%%javascript
let x;
let y="";
// x değişkeni undefined, y değişkeni ise string veri tipine sahiptir. Konsola sırasıyla "undefined" ve "string" ifadesi yazdırılacaktır.
console.log(typeof(x))
console.log(typeof(y))
// x ve y değişkenleri depoladığı değer bakımından da farklıdır. Konsola "false" ifadesi yazdırılır.
console.log(x==y);
undefined
string
false
Undefined veri türü özellikli değişkenlerin veri tipleri de undefined olacaktır.
Örnek
%%javascript
let value;
let value2 = undefined;
console.log("value'un veri türü " + value + " 'dır.")
console.log("value2'nin veri türü " + value2 + " 'dır.");
value'un veri türü undefined 'dır.
value2'nin veri türü undefined 'dır.
Undefined veri tipine sahip bir değişken aritmetiksel işlemlerde kullanıldığında expression'un sonucu NaN
(Not a Number) olacaktır. Çünkü işlem sonucu sayısal veya rakamsal bir değerden oluşmayacaktır. NaN teriminin kullanımı için JavaScript NaN
Not a Number Terimi başlığına bakabilirsiniz.
%%javascript
let x;
let y =x+1;
// Konsola "NaN" ifadesi yazdırılır. Çünkü x+undefined'ın matematiksel bir karşılığı yoktur.
console.log(y);
// Buna rağmen sonucun veri tipi number'dır. Konsola "number" yazdırılır.
console.log(typeof(y))
NaN
number
Top comments (0)