Page 100 - 6105
P. 100

Таким чином можна легко перевірити існування властивості – отримавши її

               значення і порівнявши з undefined:


                      var person = {
                        name: "Вася"


                      };



                      alert         (person.lalala              ===       undefined);             //      true,
               властивості немає

                      alert         (person.name              ===       undefined);             //       false,

               властивість є.

                      Різниця між перевірками in і === undefined.

                      Є  два  засоби  для  перевірки  наявності  властивості  в  об'єкті:  перший  –

               оператор in, другий – отримати його значення і порівняти з undefined.

                      Вони майже ідентичні, але є одна невелика різниця.

                      Справа в тому, що технічно можливо, що властивість є, а його значенням є

               undefined:


                      var obj = {};
                      obj.test  =  undefined;  //  додали  властивість  із

               значенням undefined

                      //  перевіримо  наявність  властивостей  test  і  свідомо

               відсутнього blabla

                      alert (obj.test === undefined); // true

                      alert (obj.blabla === undefined); // true

                      При  цьому,  як  видно  з  коду,  при  простому  порівнянні  наявність  такої

               властивості буде неможливо відрізнити від його відсутності.

                      Але оператор in гарантує правильний результат:

                      var obj = {};

                      obj.test = undefined;



                                                                99
   95   96   97   98   99   100   101   102   103   104   105