Поскольку 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