Javascript == (iki eşit) ve === (üç eşit) arasında ne fark var?

Anonim (156) 3 yıl önce sordu

Javascript öğreniyorum ve kafamı karıştıran bir konu var. İf ifadesi içinde örneklerde == (iki eşit) ve === (üç eşit) görüyorum. == ve === arasında ne fark var?

Toplam 1 cevap


alattin (16999) 3 yıl önce cevapladı

Javascript dilinde 2 farklı eşitlik kontrol operatörü var. Birisi == (iki eşit) bir diğeri === (üç eşit)

Javascript === (üç eşit):

Bu operatör hem değer hem de tür kontrolü yapar.

x===y

Mesela yukarıdaki karşılaştırmada önce türleri aynı mı (int, bool, string) kontrol edilir. Sonra değerleri eşit mi kontrol edilir. Hem tür hem de değer eşitse ifade true döndürür. Eğer türler farklıysa o zaman bu ifade false döndürür. Eşitlik kontrolü yapılırken 3 eşit operatörünün kullanılması daha iyi olur.

Örneğin "0" ve 0 görünüş olarak aynı olsa da tür olarak eşit değillerdir. 

Javascript == (iki eşit):

Javascript 2 eşit operatörü türler farklıysa ilk olarak dönüştürmeyi dener. Sonra da karşılaştırma yapar. Örneğin "0" ifadesini integer değere dönüştürmeyi dener.  Başarılı olursa değerleri karşılaştırır.Tür dönüşüm işlemi oldukça karmaşıktır.