Estoy trabajando en un sistema heredado donde un punto final envía un contenido HTML que, cuando se recibe en la interfaz, se agrega a un div: $('#some-div').html(htmlContent) .
Eso funciona bien, pero estoy observando algo extraño, cuando defino algunas constantes en un <script> aparecen como indefinidas en los scripts que continúan:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script> $(document).ready(function() { // This simulates the content retrieved from the server let contentFromBackend = JSON.parse("{\"text\":\"<script>\\n const someConst = \'hello\'\\n\\n function someConstFn() {\\n return \'hello\'\\n }\\n<\/script>\\n\\n<script>\\n console.log(someConstFn()) \/\/ This works!\\n console.log(someConst) \/\/ This fails saying that someConst is undefined!\\n<\/script>\"}")['text'] // Appends to div $('#some-div').html(contentFromBackend) }) </script> <div id="some-div"><div> Si el contenido se genera de forma estática (por ejemplo, con un renderizador de plantillas como Twig o HTML simple), tanto la constante como las funciones funcionan perfectamente. var también funciona bien . ¿Por qué pasó esto?