Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
El uso estricto no funciona cuando llamo a mi función izada

Tengo el siguiente código

 "use strict"; x = 12; function myFunction() { } myFunction();

entonces estoy usando use strict en la parte superior de mi secuencia de comandos y ahora estoy en modo estricto, por lo que no puedo tener una variable no declarada como x

Eso me da el siguiente error en mi consola

Uncaught ReferenceError: x is not defined .

Pero cuando ejecuto este código

 myFunction(); "use strict"; x = 12; function myFunction() { } console.log('the script continues...')

No obtengo el mismo error para mi variable no declarada x . Como puede ver, el script continúa ejecutándose.

Porqué es eso ? ¿Por qué no obtengo el mismo error cuando trato de llamar a mi función izada, así que llame a la función antes de que se declare? ¿Por qué afecta el ámbito global?

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Como dice en la documentación de MDN para el modo estricto , el "use strict"; La secuencia es solo una directiva de modo estricto si es lo primero en el archivo que no sea un comentario. Con su llamada de función encima, ya no es lo primero en el archivo y, por lo tanto, no es una directiva de modo estricto; en cambio, es solo un literal de cadena independiente que no usa nada.

Dado que su código no está en modo estricto, x = 12; está asignando un valor a un identificador no declarado, que (en modo suelto) crea un global implícito . (Más en mi publicación antigua en mi antiguo blog anémico: The Horror of Implicit Globals ). Esta es una de las muchas razones por las que usar el modo estricto es Good Thing ™, porque al asignar a un identificador no declarado es el error que siempre debería tener. estado.


Nota al margen: otra forma de usar el modo estricto es usar módulos nativos en lugar del "use strict"; . Los módulos, como casi todos los ámbitos nuevos en JavaScript desde ES2015, son estrictos de forma predeterminada (y tienen otros beneficios, como su propio ámbito y la capacidad de declarar dependencias entre ellos).

about 4 years ago · Santiago Gelvez Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda