Поскольку JavaScript позволяет создавать динамические объекты, вы должны быть осторожны и проверять, действительно ли существует свойство объекта. Для этого есть как минимум 2 способа.

hasOwnProperty

hasOwnProperty - это функция, встроенная во все объекты.

if (obj.hasOwnProperty('prop')) {
    // do something
}

Примечание. Объекты хоста Internet Explorer (объекты, предоставляемые средой и различающиеся в разных браузерах) не имеют функции hasOwnProperty.

в Операторе

in - это встроенный оператор, который можно использовать для проверки существования свойства объекта.

if ('prop' in obj) {
    // do something
}

Примечание. Проротипы obj также будут проверяться для свойства prop.

Неопределенная проверка

Вы можете проверить, есть ли у объекта свойство, проверив его undefined:

if (typeof obj.prop !== 'undefined') {
  // do something
}

or:

if (typeof obj['prop'] !== 'undefined') {
  // do something
}

Вы должны использовать тройное равенство, чтобы не проверять ложность других значений.

Следуйте за мной в Twitter: https://twitter.com/AuMayeung