Cómo comprobar si una propiedad existe en JavaScript

Javascript

En este breve tutorial vamos a ver cómo comprobar si una propiedad o una clave existe en un objeto en JavaScript.

Para ello vamos a proponer el siguiente ejemplo:

const persona = {
  nombre: 'Edu'
}

Existen varias formas de saberlo, que son las que veremos a continuación.

El operador in

El uso del operador in es el que suele usar para saber si una determinada clave está en un objeto.. Para comprobar si la propiedad nombre existe en el objeto persona de nuestro ejemplo, puedes realizar la operación 'nombre' in persona, que en este caso devolverá el valor true:

const existe = 'nombre' in persona;
console.log(existe); // true

También puedes realizar la siguiente comparación:

if ('nombre' in persona) {
  console.log('Existe'); //true
}

En caso de que la propiedad no exista, el operador in devolverá false como resultado.

Cuando utilizas herencia de objetos, el operador in devolverá true incluso en el caso de que la propiedad sea heredadas de los ancestros del objeto, siempre y cuando la propiedad exista en alguno de ellos, claro está.

El método hasOwnProperty

Otra forma de saber si una propiedad existe, consiste en usar el método hasOwnProperty, incluido por defecto en todos los objetos de JavaScript. La operación persona.hasOwnProperty('nombre') devolverá también el valor true:

const existe = persona.hasOwnProperty('nombre');
console.log(existe); // true

Usando el método en un condicional::

if (persona.hasOwnProperty('nombre')) {
  console.log('Existe'); // true
}

En caso de que la propiedad no exista, el resultado será false.

A diferencia del operador in, el método hasOwnProperty() no funcionará con las propiedades heredadas. Solamente se devolverá true siempre y cuando la propiedad exista directamente en el objeto sobre el que se ejecuta el método. Si la propiedad existiese en un ancestro y no en el propio objeto, el resultado del método sería false.

Consideraciones adicionales

Existe también un método que puedes seguir para definir valores por defecto para ciertas propiedades en caso de que no existan. Por ejemplo, vamos a crear una nueva variable y a asignarle las propiedades nombre y apellido del objeto persona de nuestro ejemplo:

const empleado = {
  nombre: persona,nombre,
  apellido: persona.apellido || 'Ninguno'
}

En este caso, dado que la propiedad apellido no existe en el objeto persona, el valor de empleado.apellido tendrá como valor la cadena 'Ninguno'.

Y esto ha sido todo.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”