Проверяет понимание различий между оператором in и методом hasOwnProperty() при проверке наличия свойств в объектах JavaScript.
Оператор in и метод hasOwnProperty() используются для проверки наличия свойств в объектах JavaScript, но работают по-разному. in проверяет свойство во всей цепочке прототипов, включая унаследованные свойства. hasOwnProperty() проверяет только собственные свойства объекта, не затрагивая прототип.
const obj = { name: 'Alice' };
console.log('name' in obj); // true
console.log('toString' in obj); // true (унаследовано)
console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('toString')); // falsein — когда нужно проверить, доступно ли свойство (включая унаследованные), например, для проверки методов.hasOwnProperty() — когда важны только собственные свойства, например, при итерации по ключам объекта или для избежания ошибок с прототипом.Используйте hasOwnProperty() для безопасной проверки собственных свойств, особенно при работе с объектами, которые могут иметь измененный прототип. Оператор in удобен для быстрой проверки доступности свойства, но может дать ложноположительный результат для унаследованных свойств.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию