JavaScript'te == vs === vs typeof
JavaScript'te ==
, ===
ve typeof
operatörleri sıklıkla kullanılan özelliklerdir ve farklı amaçlara hizmet ederler. İşte bu operatörlerin kullanım amaçları ve farkları:
==
Karşılaştırma Operatörü (Equality Operator)
==
karşılaştırma operatörü, iki değerin eşit olup olmadığını karşılaştırır. Ancak bu operatör tip dönüşümlerine izin verir, yani karşılaştırılan değerler farklı tiplerde olsa bile otomatik olarak dönüşümler yapar. Bu bazen beklenmeyen sonuçlara yol açabilir.
Örnek:
console.log(5 == '5'); // true (Değerler eşit, tip dönüşümü yapılır)
console.log(1 == true); // true (Değerler eşit, tip dönüşümü yapılır)
console.log(0 == false); // true (Değerler eşit, tip dönüşümü yapılır)
===
Katı Eşitlik Operatörü (Strict Equality Operator)
===
katı eşitlik operatörü, hem değerleri karşılaştırır hem de tiplerini kontrol eder. Eğer değerler ve tipler eşitse true
, değerler aynı olsa bile tipler farklıysa false
döner.
Örnek:
console.log(5 === '5'); // false (Değerler aynı ancak tipler farklı)
console.log(1 === true); // false (Değerler aynı ancak tipler farklı)
console.log(0 === false); // false (Değerler aynı ancak tipler farklı)
typeof
Operatörü
typeof
operatörü, bir değişkenin veya ifadenin veri türünü döndürür. Dönüş değeri bir string'dir.
Örnek:
console.log(typeof 42); // "number"
console.log(typeof 'JavaScript'); // "string"
console.log(typeof true); // "boolean"
console.log(typeof undefined); // "undefined"
console.log(typeof null); // "object" (Bu JavaScript'in bir hata olmasından kaynaklanır)
Sonuç
==
operatörü sadece değerleri karşılaştırır ve tip dönüşümlerine izin verir.===
operatörü hem değerleri hem de tipleri karşılaştırır.typeof
operatörü bir değişkenin veya ifadenin veri türünü döndürür.