Есть ли свойство в объекте
Как проверить объект на наличие определенного ключа свойства
Итак, у нас есть JavaScript-объект. Проверить, есть ли в нем ключ (key) нужного нам свойства можно с помощью оператора in
.
Разберем пример.
Допустим, у нас есть объект car
:
const car = {
color: 'blue'
}
С помощью оператора in
мы можем проверить - существует ли для этого объекта свойство color
:
'color' in car // true
Полагаю, что в сочетании с таким выражением вполне разумно использовать оператор выбора:
if ('color' in car) {
}
Другой способ определения существования определенного свойства для объекта - метод hasOwnProperty()
:
car.hasOwnProperty('color')
Нужно знать, что оператор in
вернет true
даже в случае, когда свойство наследуется от родительских объектов. В свою очередь, метод hasOwnProperty()
будет истиной только в случае, когда свойство создано непосредственно для целевого объекта, без учета наследования чего-либо от предков.
Так же, полезно использовать механизм возврата к значению по умолчанию, если нужное свойство для объекта отсутствует.
Например:
car.brand || 'Ford'
Если свойство с ключом brand
для объекта car
не найдено, будет установлено значение по умолчанию Ford
.
Спасибо за внимание.