El modo estricto ECMAscript le permite optar por una versión restringida de JavaScript que no permite algunas de las características más problemáticas o propensas a errores del lenguaje completo.
La sintaxis fue diseñada para ser compatible con versiones anteriores, de modo que los entornos que no implementan las comprobaciones en modo estricto puedan ejecutar código estricto.
El modo estricto realiza varios cambios en la semántica normal de JavaScript. Primero, el modo estricto elimina algunos errores silenciosos de JavaScript al cambiarlos para arrojar errores. En segundo lugar, el modo estricto corrige errores que dificultan que el motor de JavaScript realice optimizaciones: a veces se puede hacer que el código de modo estricto se ejecute más rápido que el código idéntico que no es el modo estricto. Tercero, el modo estricto prohíbe que se defina cierta sintaxis en futuras versiones de ECMAScript.
- Comenzando como desarrollador web independiente para recaudar dinero para el último año de la universidad: ¿Recursos para el lado comercial del trabajo independiente?
- ¿Puedo aprender MEAN stack y afirmarme como desarrollador web full stack?
- ¿Debo pasar mi tiempo adelantándome a la curva en AngularJS 2 o poniéndome al día con React?
- ¿Por qué a veces es mejor usar Nginx en lugar del servidor Apache?
- ¿Cuál es la pila de tecnología de Lever?
El modo estricto hace que sea imposible crear accidentalmente variables globales. En JavaScript normal, escribir mal una variable en una asignación crea una nueva propiedad en el objeto global y continúa “trabajando” (aunque es posible una falla futura: probablemente, en JavaScript moderno). Asignaciones que accidentalmente crearían variables globales en lugar de un modo estricto
En segundo lugar, el modo estricto realiza asignaciones que de otro modo fallarían silenciosamente arrojan una excepción. Por ejemplo, NaN es una variable global que no se puede escribir. En el código normal, la asignación a NaN no hace nada; el desarrollador no recibe comentarios de fallas. En modo estricto, la asignación a NaN genera una excepción. Cualquier asignación que falle silenciosamente en el código normal (asignación a una propiedad que no se puede escribir, asignación a una propiedad de solo getter, asignación a una nueva propiedad en un objeto no extensible) se ejecutará en modo estricto.
En tercer lugar, en modo estricto, intente eliminar el error de lanzamiento de propiedades indelebles (donde antes el intento simplemente no tendría efecto):
El modo estricto en ECMAScript 5 prohíbe la sintaxis octal. La sintaxis octal no forma parte de ECMAScript 5, pero se admite en todos los navegadores al prefijar el número octal con un cero: 0644 === 420