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