JavaScript "uso estricto"

En este tutorial, aprenderá sobre la sintaxis de "uso estricto" de JavaScript con la ayuda de ejemplos.

'use strict';establece que el código JavaScript debe ejecutarse en ' modo estricto '. Esto hace que sea más fácil escribir código JavaScript bueno y seguro. Por ejemplo,

 myVariable = 9;

Aquí, myVariable se crea sin declarar. Esto funciona como una variable global en JavaScript. Sin embargo, si usa esto en modo estricto, el programa arrojará un error. Por ejemplo,

 'use strict'; // Error myVariable = 9;

El código anterior arroja un error porque myVariable no está declarado. En modo estricto, no puede usar la variable sin declararla.

Para indicar que este programa está en modo estricto, hemos utilizado

 'use strict';

en la parte superior del programa.

Puede declarar el modo estricto agregando 'use strict';o "use strict";al comienzo de un programa.

Cuando declaras el modo estricto al comienzo de un programa, tendrá alcance global y todo el código del programa se ejecutará en modo estricto.

Modo estricto en variable

En modo estricto, usar una variable sin declararla arroja un error.

Nota : Debe declarar el modo estricto al comienzo del programa. Si declara el modo estricto debajo de algún código, no funcionará.

Por ejemplo,

 console.log("some code"); // 'use strict' is ignored // must be at the top "use strict"; x = 21; // does not throw an error

Modo estricto en función

También puede usar el modo estricto dentro de una función. Por ejemplo,

 myVariable = 9; console.log(myVariable); // 9 function hello() ( // applicable only for this function 'use strict'; string = 'hello'; // throws an error ) hello();

Si usa 'use strict';dentro de una función, el código dentro de la función estará en modo estricto.

En el programa anterior, 'use strict';se usa dentro de la hello()función. Por lo tanto, el modo estricto es aplicable solo dentro de la función.

Como puede ver, al principio del programa, myVariablese usa sin declarar.

Si declara 'use strict';en la parte superior del programa, no puede usar una variable sin declararla también dentro de la función. Por ejemplo,

 // applicable to whole program 'use strict'; function hello() ( string = 'hello'; // throws an error ) hello();

Nota : El modo estricto no se aplica a las sentencias de bloque con ()llaves.

Cosas no permitidas en modo estricto

1. No se permiten variables no declaradas.

 'use strict'; a = 'hello'; // throws an error

2. No se permiten objetos no declarados.

 'use strict'; person = (name: 'Carla', age: 25); // throws an error

3. No se permite eliminar un objeto.

 'use strict'; let person = (name: 'Carla'); delete person; // throws an error

4. No se permite duplicar el nombre de un parámetro.

 "use strict"; function hello(p1, p1) ( console.log('hello')); // throws an error hello();

5. No se permite la asignación a una propiedad que no se puede escribir.

 'use strict'; let obj1 = (); Object.defineProperty(obj1, 'x', ( value: 42, writable: false )); // assignment to a non-writable property obj1.x = 9; // throws an error

6. No se permite la asignación a una propiedad exclusiva de captadores.

 'use strict'; let obj2 = ( get x() ( return 17; ) ); // assignment to a getter-only property obj2.x = 5; // throws an error

7. No se permite la asignación a una nueva propiedad en un objeto no extensible.

 'use strict'; let obj = (); Object.preventExtensions(obj); // Assignment to a new property on a non-extensible object obj.newValue = 'new value'; // throws an error

8. No se permite la sintaxis octal.

 'use strict'; let a = 010; // throws an error

9. Los argumentos de nombre de variable y eval no están permitidos.

 'use strict'; let arguments = 'hello'; // throws an error let eval = 44;

10. Tampoco puede utilizar estas palabras clave reservadas en modo estricto.

implements interface let package private protected public static yield

Beneficios del modo estricto

El uso del modo estricto:

  • ayuda a escribir un código más limpio
  • cambia los errores silenciosos previamente aceptados (sintaxis incorrecta) en errores reales y arroja un mensaje de error
  • facilita la escritura de JavaScript "seguro"

Articulos interesantes...