Чаще нас поражает простейшая проблема, которую очень легко решить. Мы знаем, что решение проблемы было бы очень простым, но найти решение сложно. Он становится ошеломляющим со всеми новыми концепциями и различными вещами, доступными в Интернете. Это была одна из таких проблем для меня, когда я изначально начинал с JavaScript. Итак, сегодня я хотел бы перечислить способы проверить, существует ли свойство в объекте.

1) Использование метода Object hasOwnProperty ()

Наиболее распространенное решение - использовать hasOwnProperty(), который является одним из распространенных методов объекта. Этот метод возвращает логическое значение, указывающее, имеет ли объект указанное свойство.

var favAuthor = {
  name: 'Dan Brown',
  favBook: 'Lost Symbol',
  favCharacter: 'Robert Langdon'
}
if(favAuthor.hasOwnProperty('favCharacter')) // true
{console.log('The property exists')}
else {
  console.log('The property does not exist')
}

Если свойство не существует, оно вернет false.

console.log(favAuthor.hasOwnProperty('favVillain')) // false

2) в Операторе

Оператор in возвращает true, если указанное свойство находится в указанном объекте.

var favAuthor = {
  name: 'Dan Brown',
  favBook: 'Lost Symbol',
  favCharacter: 'Robert Langdon'
}
if('name' in favAuthor) // true
{console.log('The property exists')}
else {
  console.log('The property does not exist')
}

Если указанное свойство не существует, выражение вернет false.

console.log('favVillain' in favAuthor) // false

3) Используя typeof и сравните его с undefined

Если свойство не существует, тип свойства должен быть ’undefined', и, следовательно, мы можем использовать typeofoperator и сравнивать его с ’undefined'.

var favAuthor = {
  name: 'Dan Brown',
  favBook: 'Lost Symbol',
  favCharacter: 'Robert Langdon'
}
if(typeof favAuthor.name !== 'undefined') // true
{console.log('The property exists')}
else {
  console.log('The property does not exist')
}

Если указанное свойство не существует в упомянутом объекте, оно вернет false.

console.log(typeof favAuthor.favVillain!== 'undefined') // false

4) Использование !! оператор (оператор двойного взрыва)

Это наименее известный метод проверки свойства объекта. В Javascript с каждым значением связано логическое значение true или false. Например, со значением null связано логическое значение false. Строковое значение, такое как abc, имеет связанное логическое значение true.

Вы можете найти список истинных значений здесь и ложных значений здесь.

Null - это ложное значение.

!!null // false

Таким образом, мы можем воспользоваться этим по имени свойства, которое мы хотим проверить, используя !! оператор. Если ключ к значению свойства не равен null, он вернет true.

var favAuthor = {
  name: 'Dan Brown',
  favBook: 'Lost Symbol',
  favCharacter: 'Robert Langdon'
}
if(!!favAuthor.name) // true
{console.log('The property exists')}
else {
  console.log('The property does not exist')
}

Если свойство равно null, что означает, что свойство не существует, оно будет равно false, поскольку null является ложным.

console.log(!!favAuthor.favVillain) // false

И это подводит итог!

Спасибо :)