Introducido en ECMAScript 5, es la forma de optar a la variante restringida de JavaScript. JavaScript es un lenguaje de programación ligero interpretado o compilado en JIT con funciones de primera clase.
El propósito del literal «use strict» es indicar que el código debe ejecutarse en «modo estricto». Nos ayuda a identificar algunos bugs ocultos. No podemos usar variables no declaradas en modo estricto.
El modo estricto elimina algunos errores silenciosos de JavaScript cambiándolos por errores de lanzamiento.
El modo estricto corrige los errores que dificultan las optimizaciones de los motores de JavaScript: a veces se puede hacer que el código en modo estricto se ejecute más rápido que un código idéntico que no esté en modo estricto.
El modo estricto prohíbe algunas sintaxis que probablemente se definan en futuras versiones de ECMAScript.
Impide, o lanza errores, cuando se realizan acciones relativamente «inseguras» (como obtener acceso al objeto global).
Desactiva características que son confusas o están mal pensadas.
El modo estricto facilita la escritura de un JavaScript «seguro».
Todos los navegadores modernos soportan «use strict» excepto IE 9 e inferiores.
Invocación del modo estricto
Un modo estricto es aplicable a scripts enteros o a las funciones individuales. No podemos aplicarlo a las sentencias de bloque encerradas entre llaves {}. Si intentamos utilizarlo dentro de bloques, NO tendrá efecto.
Aplicando el modo ‘estricto’ a todo el script :
En el caso del ejemplo del objeto congelado mencionado anteriormente, el uso del modo estricto dará lugar a un error en tiempo de ejecución si intentamos cambiarlo. Sin embargo no es el caso sin usar la sentencia strict.