¿Cómo comprobar si existe un objeto en javascript?

Se puede usar un objeto para verificar si existe usando 2 enfoques:

Método 1: Uso del operador typeof
El operador typeof devuelve el tipo de la variable en la que se llama como una string. La string de retorno para cualquier objeto que no existe es «indefinido». Esto se puede usar para verificar si un objeto existe o no, ya que un objeto que no existe siempre devolverá «indefinido».

Sintaxis:

if (typeof objectToBeTested != "undefined")
    // object exists
else
    // object does not exist

Ejemplo:

<!DOCTYPE html>
<html>
  
<head>
    <title>How to check whether an 
      object exists in javascript</title>
</head>
  
<body>
    <h1 style="color: green">
      GeeksforGeeks
  </h1>
    <b>How to check whether an 
      object exists in javascript</b>
    
    <p>Click on the button to
      check if the object exists</p>
    
    <p>Output for existing object: 
      <span class="outputExist"></span></p>
    <p>Output for non existing object: 
      <span class="outputNonExist"></span></p>
  
    <button onclick="checkObjectExists()">
      Click here
  </button>
    <script type="text/javascript">
        function checkObjectExists() {
            // create an existing object for comparison
            let existingObject = {};
  
            if (typeof existingObject != "undefined") {
                ans = true;
            } else {
                ans = false
            }
  
            document.querySelector(
              '.outputExist').textContent = ans;
  
            if (typeof nonExistingObject != "undefined") {
                ans = true;
            } else {
                ans = false;
            }
  
            document.querySelector(
              '.outputNonExist').textContent = ans;
        }
    </script>
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
    typeof-before
  • Después de hacer clic en el botón:
    typeof-after

Método 2: usar una instrucción try-catch para detectar un error de referencia
Acceder a un objeto inexistente siempre generará un error de referencia . Se puede usar un bloque try-catch para determinar este error. Se puede acceder a cualquier propiedad aleatoria del elemento para que se produzca este error.

Sintaxis:

try {
    objectToBeTested.prop;
    // object exists
}
catch {
    // object does not exist
}

Ejemplo:

<!DOCTYPE html>
<html>
  
<head>
    <title>How to check whether 
      an object exists in javascript</title>
</head>
  
<body>
    <h1 style="color: green">
      GeeksforGeeks
  </h1>
    <b>How to check whether an 
      object exists in javascript</b>
    
    <p>Click on the button to check 
      if the object exists</p>
    <p>Output for existing object:
      <span class="outputExist"></span></p>
    
    <p>Output for non existing object: 
      <span class="outputNonExist"></span></p>
  
    <button onclick="checkObjectExists()">Click here</button>
    <script type="text/javascript">
        function checkObjectExists() {
  
            // create an existing object for comparison
            let existingObject = {};
  
            try {
                // accessing a random property
                existingObject.prop;
                ans = true;
            } catch {
                ans = false;
            }
  
            document.querySelector(
              '.outputExist').textContent = ans;
  
            try {
                // accessing a random property
                nonExistingObject.prop;
                ans = true;
            } catch {
                ans = false;
            }
  
            document.querySelector(
              '.outputNonExist').textContent = ans;
  
        }
    </script>
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
    try-catch-before
  • Después de hacer clic en el botón:
    try-catch-after

Publicación traducida automáticamente

Artículo escrito por sayantanm19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *