Полный цикл в digital

Проверка наличия в объекте

При динамическом определении в объекте новых свойств и методов перед их использованием бывает важно проверить, а есть ли уже такие методы и свойства. Для этого в javascript может использоваться оператор in который имеет следующий синтаксис, в кавычках идет название свойства или метода, а после in название объекта. Если свойство или метод с подобным именем имеется, то оператор возвращает true. Если нет, возвращается false:

"свойство|метод" in объект

Узнаем, есть ли в объекте ряд свойств:

const user = {};
user.name = "Tom";
user.age = 26;
user.print = function(){
console.log(this.name);
console.log(this.age);
};
const hasNameProp = "name" in user;
// true - свойство name есть в user
console.log(hasNameProp); 
const hasWeightProp = "weight" in user;
// false - в user нет свойства или метода под названием weight
console.log(hasWeightProp);

С помощью выражения name in user проверяем, есть ли в объекте user свойство name и результат проверки передаем в константу hasNameProp. Далее анологичным образом проверяем наличие свойства wheight.

Подобным обпазом можно проверить и наличие методов:

const hasPrintMethod = "print" in user;
// true - в user есть метод print
console.log(hasPrintMethod);

Альтернативный способ заключается на значение undefined. Если свойство или метод равен undefined, то эти свойство или метод не определены:

const hasNameProp = user.name!==undefined;
// true
console.log(hasNameProp);  
const hasWeightProp = user.weight!==undefined;
// false
console.log(hasWeightProp);

И так как объекты представляют тип Object, а значит, имеет все его методы и свойства, то объекты также могут использовать метод hasOwnProperty(), который определен в типе Object:

const hasNameProp = user.hasOwnProperty("name");
// true
console.log(hasNameProp);  
const hasPrintMethod = user.hasOwnProperty("print");
// true
console.log(hasPrintMethod);  
const hasWeightProp = user.hasOwnProperty("weight");
// false
console.log(hasWeightProp);
Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг