¿Qué es el modo estricto en JavaScript?

Entender el modo estricto, con ejemplos

Geek técnico

6 abr, 2020 – 4 min read

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.

    La sentencia use strict ha eliminado algunos errores silenciosos de JavaScript cambiándolos por errores throw. Es bastante útil cuando estamos depurando cualquier Aplicación web.

    Modo estricto para scripts

    • Usando la sentencia ‘strict’
  • sin ‘strict’
  • Modo estricto para las funciones de Javascript

    El «use strict» puede usarse dentro de las funciones también.

    En el ejemplo anterior, hemos definido dos variables sin declararlas : x e y. Como hemos añadido la declaración «use strict» dentro de la función, por lo tanto sólo y = 22, lanzará la excepción. «x = 11» no lanzará ninguna excepción.

    Esto significa que en el caso anterior, el alcance de «use strict» está limitado a la función solamente y no a todo el archivo de script.

    Conclusión

    • El modo estricto hace más fácil escribir un JavaScript «seguro». Cambia la «mala sintaxis» previamente aceptada en errores reales. Por ejemplo, en el JavaScript normal, escribir mal el nombre de la variable crea la nueva variable global. En el modo estricto, resulta en un error, haciendo imposible crear la variable global accidentalmente.
    • En el JavaScript estándar, el desarrollador no recibirá ninguna respuesta de error asignando valores a las propiedades no escribibles. En el modo estricto, cualquier asignación a la propiedad no escribible, a una propiedad de sólo obtención, a una propiedad no existente, a la variable no existente o al objeto no existente, arrojará un error.
    • Las palabras clave reservadas para futuras versiones de JavaScript no pueden utilizarse como nombres de variables en el modo estricto. Esas palabras clave son las siguientes : implements, interface, let, package, private, protected, public, static, yield.
    • En caso de que estemos utilizando la consola del navegador para probar alguna función, por defecto el modo estricto no se aplica. Tenemos que añadirlo manualmente mediante el uso de ‘use strict’.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *