2 Şubat 2018 Cuma

OO Javascript te in Operatorü ve hasOwnProperty

Bir nesnede herhangi bir property nin olup olmadığı sorgusu if ile yapılmaz.

// aşağıdaki kod satırı güvenilmezdir if (person1.age) { // do something with age }

Çünkü javascripte if şartında true ve false sonuç döndürürken, true ve false neticesini etkileyen truthy ve falsy değerler vardır.

truthy doğru olarak kabul edilecek tüm değerler anlamındadır. Aşağıdaki değerler true döndürür

  1. an object (nesne), 
  2. a nonempty string (boş olmayan bir dize), 
  3. a nonzero number (sıfır olmayan bir sayı),
  4.  true (doğru)



falsy yanlış olaran  kabul edilecek tüm değerler anlamındadır.  Aşağıdaki değerler false döndürür


  1. değer atanmamış (null),
  2. tanımlanmamış(undefined),
  3. 0, 
  4. yanlış (false),
  5. NaN, 
  6. boş bir dize (empty string)

Örneği hatırlayalım
// aşağıdaki kod satırı güvenilmezdir if (person1.age) { // do something with age }

kişinin yaşı 0 olması durumunda ya da farklı bir örnekte negatif bir sonuç çıkmasında yaş property si olmasına rağmen negatif sonuç verebilir.

Bir property nin varlığını test etmek için daha güvenilir yol in operatörünü kullanmaktır

In operatörü belirli bir adla belirli bir property i arar ve verilen anahtar hash table da mevcutsa bulursa doğru döndürür.

Örnek


var person1 = { name: "Nicholas", sayName: function() { console.log(this.name); } }; console.log("name" in person1); // true1
console.log("sayName" in person1); // true1
console.log(person1.hasOwnProperty("name")); // true
console.log(person1.hasOwnProperty("sayName")); // true

hasOwnProperty metodu in operatörü gibi property nin object içerisinde olup olmadığı testini yapar.

delete person1.name; // true - not output, property i siler
console.log("name" in person1); // false, az önce silindi


Literal Object ile Örnek:
var a={"sayi1":100,"sayi2":125}
undefined
a
("sayi1" in a)
true
a.hasOwnProperty("sayi1")
true









Hiç yorum yok:

Yorum Gönder

Kayseri Invisalign Tedavisi

Herkes harika bir gülümseme ister ama çoğumuzun buna ulaşmak için yardıma ihtiyacı vardır. Giderek daha fazla insan, hizalayıcı adı verilen ...