Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Javascript'te == operatörü ile === arasındaki fark nedir?
#1
Javascriptte == operatörü, equal yani eşitlik operatörü olarak bilinir. Sonucun true değer döndürebilmesi için iki tarafının da eşit olması gerekir. Yani a = b olmalıdır.

=== operatörü ise Strict equal yani katı eşitlik operatörüdür. Bu operatör ile yapılan karşılaştırmada her iki tarafında hem değerinin hem de türünün aynı olması gerekir. 

Bu iki durumu açıklaşıyı bir bir dizi kod ile göstermeye çalışalım.

==  operatörü için örnek Javascript kodu;

Kod:
<button onclick="karsilastir(3.5)">Buton</button>

<script>
function karsilastir(a) {
var b = a+" ";
var c= typeof b;
   if(a == b)    alert(" a = "+a+" "+typeof a+" tipinde | " +" b = "+b+c+" tipinde");
}
</script>

Bu kodda karsilastir fonksiyonu parametre olarak 3.5 değerini almakta ve bunu kendi içindeki b değişkenine ufak bir oyun yapılarak bir string olarak aktarılmakta. Javascript  == karşılaştıması yaparken bu biri number diğeri string tipinde olan iki değişkenin SAYISAL DEĞERLERİNİ karşılaştırıyor ve sonucu doğru olarak döndürdüğü için alert komutunu işletiyor. Bu kod çalıştığında ekranda kullanıcıya;

a = 3.5 number tipinde | b = 3.5 string tipinde

şeklinde bir uyarı mesajı vermektedir.


===  operatörü için örnek Javascript kodu;


Kod:
<button onclick="karsilastir(3.5)">Buton</button>

<script>
function karsilastir(a) {
var b = a+" ";
var c= typeof b;
  if(a === b) {  
          alert(" a = "+a+" "+typeof a+" tipinde | " +" b = "+b+c+" tipinde");
       }
       else{
       alert("a ile b değerleri eşit olsalar da veri tipleri uymuyor!");
       }
}
</script>
 
Bu kodda ise Javascript iki değişkenin sadece değerlerini değil, veri türlerini de karşılaştırıyor. Sonucun if bloğunun doğru sonuç verebilmesi için a ve b'nin tipleri de eşit olmalı. Ancak biz b= a+""; şeklinde bir atama yaptığımız için b değişkeninin değeri 3.5 olsa bile tipi string'e dönüştü. Bu sebepten if karşılaştırma ifadesi false sonucunu verir ve else bloğu çalışır. Çünkü a ve b değişkenlerinin tipleri eşit değildir. Kod çalıştırıldığında butona basınca kullanıcıya;

a ile b değerleri eşit olsalar da veri tipleri uymuyor!

uyarısını verir.
Alıntı


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi