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