JavaScript ReferenceError: no se puede acceder a la declaración léxica `variable’ antes de la inicialización

Esta excepción de JavaScript no puede acceder a la declaración léxica ‘variable’ antes de que ocurra la inicialización si se ha accedido a una variable léxica antes de la inicialización. Esto podría suceder dentro de cualquier instrucción de bloque cuando se accede a las declaraciones let o const cuando no están definidas.

Mensaje: 

ReferenceError: Use before declaration (Edge)
ReferenceError: can't access lexical declaration `variable' before 
                initialization (Firefox)
ReferenceError: 'variable' is not defined (Chrome)

Tipo de error: 

ReferenceError

Causa del error: en alguna parte del código, hay una variable léxica a la que se accedió antes de la inicialización.

Ejemplo 1: en este ejemplo, la palabra clave const se usa con la variable dentro de la instrucción if, por lo que se ha producido el error.

HTML

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body style="text-align: center;">
        <h1 style="color: green;">
            GeeksforGeeks
        </h1>
         
         
<p>
          JavaScript ReferenceError -
          Can't access lexical declaration`variable'
          before initialization
        </p>
 
 
        <button onclick="Geeks();">
            click here
        </button>
        <p id="GFG_DOWN"></p>
 
 
        <script>
            var el_down = document.getElementById("GFG_DOWN");
            function GFG() {
                const var_1 = "This is";
                if (true) {
                    const var_1 = var_1 + "GeeksforGeeks";
                }
            }
            function Geeks() {
                try {
                    GFG();
                    el_down.innerHTML =
                      "'Can't access lexical declaration"+
                      "`variable'before initialization' "+
                      "error has not occurred";
                } catch (e) {
                    el_down.innerHTML =
                      "'Can't access lexical declaration"+
                      "`variable' before initialization'"+
                      " error has occurred";
                }
            }
        </script>
    </body>
</html>

Producción: 

Ejemplo 2: En este ejemplo, la palabra clave se usa con la variable Entonces se ha producido el error.

HTML

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body style="text-align: center;">
        <h1 style="color: green;">
            GeeksforGeeks
        </h1>
         
         
<p>
          JavaScript ReferenceError -
          Can't access lexical declaration`variable'
          before initialization
        </p>
 
 
        <button onclick="Geeks();">
            click here
        </button>
        <p id="GFG_DOWN"></p>
 
 
        <script>
            var el_down = document.getElementById("GFG_DOWN");
            function GFG() {
                let var_1 = 3;
                if (true) {
                     var_1 = var_1 + 5;
                }
            }
            function Geeks() {
                try {
                    GFG();
                    el_down.innerHTML =
                      "'Can't access lexical declaration"+
                      "`variable' before initialization'"+
                      " error has not occurred";
                } catch (e) {
                    el_down.innerHTML =
                      "'Can't access lexical declaration"+
                      "`variable'before initialization'"+
                      " error has occurred";
                }
            }
        </script>
    </body>
</html>

Producción: 

Publicación traducida automáticamente

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