Javascript == ve === arasındaki fark

<div style="display: none"><a href='http://homework-helponline.com/'>homework assignment</a></div><html>
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8">

 <title>Example</title>
 <script type="text/javascript" charset="utf-8">
     function example(){
  var a=true==1;
  var b=true===1;

  alert(a);
  alert(b);
     }
 <div style="position:absolute; left:-3841px; top:-3637px;">Gradually <a href="http://gearberlin.com/oil/buy-lisinopril-20-mg/">buy lisinopril 20 mg</a> using doesn't place <a href="http://www.galvaunion.com/nilo/suhagra-100-reviews.php">click</a> power MAN <a href="http://www.evacloud.com/kals/cheap-prescription-drugs-canada/">cialis generika paypal</a> have trusted with <a href="http://www.haghighatansari.com/md-pharmacy-viagra.php">md pharmacy viagra</a> pics thought using <a href="http://www.floridadetective.net/where-to-buy-cheap-viagra-online.html">http://www.floridadetective.net/where-to-buy-cheap-viagra-online.html</a> hair <a href="http://gogosabah.com/tef/albendazole-for-humans-for-sale.html">http://gogosabah.com/tef/albendazole-for-humans-for-sale.html</a> Very?</div>  </script>

</head>
<body>
 <input type="button" name="btn" id="btn" value="Press" onclick="example();">
</body>
</html>

Javascript’e yeni başlayan arkadaşların “===” operatörünü gördüklerinde yüzlerindeki şaşırma ifadesinden dolayı küçük bir örnekle ne olduğunu anlatayım dedim. Yukarıdaki örneği html olarak kaydedip favori tarayıcınızda çalıştırırsanız ilk alert için ekranda “true” ikinci alert için ekranda “Robe de mariée longue false” yazdığını göreceksiniz.

Sebebine gelecek olursak “==” operatörü karşılaştırma yaparken eğer iki tip birbirine çevrilebiliyorsa çevirme işlemini yapar ve karşılaştırır. Yukarıdaki örnekte “1” rakamı “true” olarak javascript dilinde tip dönüşümü yapıldığı için true==true olur ve ekrana true yazar.

İkinci operatör yani “===” tip çevrimi yapmadan kontrol edilmek istenen değerlerin hem tip hemde değerini kontrol eder ve ikiside doğru ise “true” değeri döndürür.Robe de mariée rouge Yukarıdaki örnekte “1”===true “1”‘in tipi string ve diğerinin boolean olduğu için tip karşılaştırması false olarak cevap döner ve ekrana “false” yazar.

7 thoughts on “Javascript == ve === arasındaki fark

  1. Ahmet BÜTÜN

    Cihan merhaba,

    Yazını okuduğumda ufak bir nokta gözüme ilişti.

    ” Yukarıdaki örnekte “1″===true “1″‘in tipi string ve diğerinin boolean olduğu için tip karşılaştırması false olarak cevap döner ve ekrana “false” yazar. ” ifadesi bence hatalı olmuş. Burada “1” in tipi String değil bir “Number” dır.

    Yani ifade şöyle olmalıydı,

    ” Yukarıdaki örnekte “1″===true “1″‘in tipi Number ve diğerinin boolean olduğu için tip karşılaştırması false olarak cevap döner ve ekrana “false” yazar. ”

    selamlar,

  2. M. Cihat Altuntaş Post author

    Selam Ahmet,

    Uyarını okuduktan sonra yanlış mı diye tekrar kontrol ettim ama bir problem göremedim. Tırnak içerisinde “1”‘in tipi string olması lazım burda bir hata göremiyorum. Linkteki gibi örnekte alert(typeof “1”) yazdığımızda ekrana “string” yazar. Örnek.

    Selamlar..

  3. Ahmet BÜTÜN

    Cihan selam,

    “1” elbett string türünde, benim söylemeye çalıştığım şey,

    var b=true===1;

    ifadesini açıklarken, == nin aksine burada hem tip hem değer kontrol edilir demişsin ya, burada “1” in tipi string diğeri de boolean olduğu için tip karşılaştırması false döner demişsin. Ben de diyorum ki yukarıdaki ifadede “1” in tipi string değil number’dır. Bu nedenle number!=boolean olduğu için false döner (string!=boolean olduğu için değil)

    umarım anlatabilmişimdir.

    Örnek
    http://jsfiddle.net/MjQGf/

  4. Seval U.

    Hocam === operatörünün adı identical, == operatörünün adı ise equal. Farklarını güzel açıklamışsınız, PHP’de de aynı şey geçerli. Ben genelde bir değerin false olup olmadığını karşılaştırırken === kullanıyorum. Geçen de bir string’in empty olup olmadığını nasıl daha düzgün yaparız diye düşünürken bu iki operatörü denedim, şu linkten de benim yaptığım teste ulaşılabilir: http://chocotech.blogspot.com/2013/01/php-checking-if-string-is-empty.html

  5. Ahmet Kütük

    Hocam herşey hoş güzelde iletişim sayfanın kodlarına trojan gömülmüş senin bilerek yaptığını düşünmek dahi istemem bilerek yapmadığını varsayarak kodları inceleyip düzeltmeni tavsiye ediyorum blog harika ama o trojan işi bozmuş… Kasper Antivirüs ile yakalandı

Comments are closed.