Avatar ·

¿Qué hace "use strict" en JavaScript y por qué es necesario?

¡Hola a todos! Empecé a estudiar JavaScript y noté que en algunos ejemplos de código, al principio del archivo o de la función, escriben `'use strict';`. Sinceramente, no entiendo muy bien para qué sirve y qué hace realmente. Intenté escribir un script simple sin esta directiva, y todo funcionó. Por ejemplo, accidentalmente creé una variable sin `let`, `const` o `var`: ```javascript function test() { myVar = 10; // Olvidé escribir let console.log(myVar); } test(); // Muestra 10 ``` Pero si agrego `'use strict';`: ```javascript 'use strict'; function test() { myVar = 10; // ¡Error! console.log(myVar); } test(); // ReferenceError: myVar is not defined ``` Ahora el código falla con un error. Parece que sin `'use strict'` todo funcionaba más fácil, pero he oído que los desarrolladores experimentados recomiendan usarlo. ¿Cuál es el truco? ¿Por qué complicarse la vida si todo funciona igual? ¿Qué otras "trampas" de JavaScript corrige? ¿Y cuándo debería usarlo?