¿Qué son las variables no declaradas e indefinidas en JavaScript?

Indefinido: Ocurre cuando una variable ha sido declarada pero no se le ha asignado ningún valor. Undefined no es una palabra clave.

No declarada: ocurre cuando intentamos acceder a cualquier variable que no esté inicializada o declarada antes usando la palabra clave var o const . Si usamos el operador ‘typeof’ para obtener el valor de una variable no declarada, nos enfrentaremos al error de tiempo de ejecución con el valor devuelto como «indefinido» . El ámbito de las variables no declaradas es siempre global.

Por ejemplo:

  • Indefinido:
    var geek;
    undefined
    console.log(geek) 
    
  • no declarado:
    //ReferenceError: myVariable is not defined
    console.log(myVariable) 
    
  • Ejemplo 1: Este ejemplo ilustra una situación en la que se utiliza una variable no declarada.

    <script>
    function GFG(){
    //'use strict' verifies that no undeclared 
    // variable is present in our code
       'use strict'
       x = "GeeksForGeeks";
    }
      
     GFG(); //accessing the above function
    </script>

    Producción:

    ReferenceError: x is not defined
  • Ejemplo 2: Este ejemplo comprueba si una variable determinada no está definida o no.

    <!DOCTYPE html>
    <html>
      
    <body>
        <style>
            h1 {
                color: green;
            }
        </style>
      
        <h1>UNDEFINED OR NOT.</h1>
      
        <button onclick="checkVar()">
          Try it
      </button>
      
        <p id="gfg"></p>
      
        <script>
            function checkVar() {
                if (typeof variable === "undefined") {   
                    string = "Variable is undefined";
                } else {   
                    string = "Variable is defined";
                }
                document.getElementById("gfg").innerHTML = 
                  string;
            }
        </script>
      
    </body>
      
    </html>

    Producción:

Publicación traducida automáticamente

Artículo escrito por Abhishek7 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 *