25 Haziran 2021 Cuma

Loose Equality Comparison - 2 Tane Eşittir

Giriş
Açıklaması şöyle. Farklı tiplerdeki nesnelerin eşitliğini kontrol etmek için kullanılır
The JavaScript operator == means equal after type juggling.
Nasıl Çalışır
Mantıksal olarak şuna benzer. Her iki nesneyi de string'e çevirip karşılaştırmak gibidir.
static boolean compareData(Object v1, Object v2)
{
  if(v1 != null && v2 != null)
    return (v1.getClass() == v2.getClass() && (v1.toString().equals(v2.toString())));
  else
  {
    return (v1 == null ? v2 == null : v1.equals(v2));
  }
}
Açıklaması şöyle. Eğer her iki tip de aynı ise == yavaş değildir.
== is exactly as fast as === when both operands have the same type, and there's nothing wrong with using it when you know that both operands have the same type. You only got a problem when you don't know what types the operands have. 
Örnek
Şu kod  true döner
'0e111' == 0
Örnek - Number ve BigInt Karşılaştırma
Şöyle yaparızz
42 == 42n  // true!

Hiç yorum yok:

Yorum Gönder