Tag Archives: Javascript

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.

Javascript Refactoring : Use Constants

Javascript kodlarına bakarsanız etrafta bolca string göreceğinizden eminim. En azından benim eski Javascript kodlarım böyleydi.Daha öncede Java, C# gibi static typed dillerde bunların önüne nasıl geçebileceğimizden bahsetmiştik. Javascript dilinde Constant kavramı olmasa da Object Literal notasyonu kullanarak sabit değişkenler tanımlayabiliriz. Aşağıdaki masum Javascript fonksiyonlarını görüyorsunuz.

function createStatusImage(movie) {
    var img = document.createElement("img");
    if (movie.avaliable)
        img.src = &#039;/Content/Images/watched.gif&#039;;
    else
        img.src = &#039;/Content/Images/unwatched.gif&#039;;

    return img;
};

function makePlanned(img) {
    img.src = img.src = &#039;/Content/Images/planned.gif&#039;;
}

Yukarıdaki kodlar ne kadar masum görünse de, her tarafta string tanımı olduğu için kodda eğer resim yani “Content/Images” dizinini değiştirmek istediğinizde kodun 3 yerinde bu değişikliği yapmak zorundasınız. Bunun yerine Object Litaral ile bir konfigürasyon nesnesi oluşturup kodumuzu aşağıdaki gibi refactor edersek daha okunaklı ve değiştirmesi daha kolay olacaktır.

var ImageConfig = {
    IMAGE_PATH: &#039;/Content/Images/&#039;,
    WATCHED_IMAGE: &#039;watched.gif&#039;,
    UNWATCHED_IMAGE: &#039;unwatched.gif&#039;,
    PLANNED_IMAGE: &#039;planned.gif&#039;
}

function createStatusImage(movie) {
    var img = document.createElement("img");
    if (movie.avaliable)
        img.src = ImageConfig.IMAGE_PATH + ImageConfig.WATCHED_IMAGE;
    else
        img.src = ImageConfig.IMAGE_PATH + ImageConfig.UNWATCHED_IMAGE;

    return img;
};

function makePlanned(img) {
    img.src = img.src = ImageConfig.IMAGE_PATH + ImageConfig.PLANNED_IMAGE;
}

Yukarıdaki tanımlama gerçek anlamda oluşturulduktan sonra değiştirilemiyen “constant” ya da “final” değişkenler sunmasa da fantazi olsun diye birisi ImageConfig nesnesi içeriğini değiştirmez ise bu amaçla kullanılabilir.Bu yüzden eğer takım olarak ortak Javascript dosyaları üzerinde değişiklik yapıyorsanız Code Conversions belirlemeniz faydanıza olacaktır. Sizi bilmiyorum ama ben son halini daha çok sevdim :)

zp8497586rq