¿Qué es “uso estricto” en Javascript?

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.

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

El modo estricto es una nueva característica en ECMAScript 5 que le permite colocar un programa o una función en un contexto operativo “estricto”. Este contexto estricto evita que se tomen ciertas acciones y genera más excepciones.

Sintaxis:

var shopApp = angular.module (‘shopApp’, []);

.controller (‘TodoListController’, function () {

uso estricto;

var shopList = this;

shopList.todos = [

{

texto: ‘aprender AngularJS’, hecho: verdadero},

{texto: ‘construir una aplicación AngularJS’, hecho: falso}];

Para elaborar un poco sobre la respuesta de Satyaki Chatterjee. El modo estricto es una forma de decirle al navegador que aplique una implementación más restringida de javascript. Las variables que aún no han sido definidas arrojarán un error

‘uso estricto’;
pi = 3.1415; // Excepción
var x = 2; //Correcto

Algunas otras cosas que hace este modo es que la palabra clave eliminar no está permitida. Hay muchas opiniones sobre si eliminar o no debe usarse, pero tiendo a alejarme de él para evitar eliminar accidentalmente una variable global posiblemente desconocida en la que podría confiar una biblioteca de terceros.

‘uso estricto’;
función foo (arg1, arg2) {};
eliminar foo; // Excepción

Recomiendo usar ‘use estricto’ para todos los javascript porque solo te ayuda como desarrollador al evitar que cometas errores simples y realmente ayuda al probar tu código.

La directiva de “uso estricto”

La directiva “use estricto” es nueva en JavaScript 1.8.5 (versión 5 de ECMAScript).

No es una declaración, sino una expresión literal, ignorada por versiones anteriores de JavaScript.

El propósito de “usar estricto” es indicar que el código debe ejecutarse en “modo estricto”.

Con el modo estricto, no puede, por ejemplo, usar variables no declaradas.

El modo estricto es una nueva característica en ECMAScript 5 que le permite colocar un programa o una función en un contexto operativo “estricto”. Este contexto estricto evita que se tomen ciertas acciones y genera más excepciones.

Y:

El modo estricto ayuda de dos maneras:

  • Captura algunos bloopers de codificación comunes, arrojando excepciones.
  • Previene, o arroja errores, cuando se toman acciones relativamente “inseguras” (como obtener acceso al objeto global).
  • Deshabilita características que son confusas o mal pensadas.

También tenga en cuenta que puede aplicar el “modo estricto” a todo el archivo … O puede usarlo solo para una función específica // Código no estricto … (function () {“use estricto”; // Defina su biblioteca estrictamente …}) (); // Código no estricto …
Lo que podría ser útil si tiene que mezclar código antiguo y nuevo 😉
Entonces, supongo que es un poco como el “uso estricto” que puedes usar en Perl (¿de ahí el nombre?) : Te ayuda a cometer menos errores al detectar más cosas que podrían provocar roturas.

Indica que el código debe ejecutarse en “Modo estricto”. En modo estricto, no está permitido escribir código como este:

x = 3.14;

Lanzará un error ya que la variable x no está definida.

El modo estricto se declara agregando “use estricto”; al comienzo de una función JavaScript o JavaScript.

Es solo una precaución inútil que le impide hacer cosas que no debería estar haciendo en primer lugar. Puedes insertarlo en tu código y si eres bueno en JS no sentirás nada.

Puedes ignorarlo. Bueno … si no quieres andar en triciclo.