JavaScript es un lenguaje indulgente. Parte de su sintaxis es opcional y el lenguaje se recupera de los errores con más gracia que muchos otros. Pero este agarre de la mano viene con una penalización: puede ser más fácil introducir errores y el código inconsistente es más difícil de leer.

Afortunadamente, si desea ejercer más disciplina, existe una manera fácil de hacerlo: el modo estricto. El modo estricto es una forma de pedirle a JavaScript que reaccione de manera más decisiva cuando encuentra problemas en su código.

¿Qué es un modo estricto?

Varios lenguajes utilizan el concepto de modo estricto: un modo que evalúa y ejecuta el código de forma más rigurosa. Es posible que esté familiarizado con el tipo de documento estricto HTML, que desaprueba ciertos elementos y atributos.

Perl, otro lenguaje de secuencias de comandos interpretado, ha tenido durante mucho tiempo su propio modo estricto. Este modo prohíbe ciertos tipos de expresión insegura.

¿Cómo uso el modo estricto en JavaScript?

Dentro de un script, coloque una declaración de "uso estricto" justo en la parte superior, antes de cualquier otra declaración:

instagram viewer

// este script completo estará en modo estricto
'uso estricto';

Tenga en cuenta que puede incluir un comentario antes, pero no declaraciones. Puede habilitar el modo estricto en un archivo JavaScript o al comienzo de un bloque de secuencia de comandos en un archivo HTML. También puede habilitar el modo estricto función por función:

función estricta () {
// Sintaxis del modo estricto a nivel de función
'uso estricto';
return "Esta función es estricta";
}
función suelta () {
return "Esta función NO es estricta";
}

Una vez que haya habilitado el modo estricto, asegúrese de probar su código. Si está trabajando con la Web, abra un Consola de JavaScript, para que pueda identificar cualquier error nuevo.

¿Qué hace el modo estricto de JavaScript?

En resumen, el modo estricto perdonará menos ciertos tipos de código problemático. En lugar de ignorar los problemas y continuar con la ejecución, ciertos errores detendrán el script. A menudo, esto es más seguro que continuar en circunstancias indeseables.

Previene Globales accidentales

El mejor ejemplo contra el que protege el modo estricto es la creación de variables globales accidentales. En ejecución normal, este código:

myVar = 17;

Creará una propiedad llamada myVar en el objeto global, asumiendo que no ha declarado myVar previamente. En un navegador web, el objeto global suele ser una ventana:

console.log (ventana.myVar);
>> 17

Sin embargo, si incluye una declaración de "uso estricto", verá un error en la consola, algo como:

Error de referencia no detectado: myVar no está definido

La razón por la que esto es tan útil es que detecta un caso común de error tipográfico. Es fácil escribir mal el nombre de una variable y muchos idiomas nos detectarían en ese error.

Pero JavaScript, por defecto, simplemente asume el alcance del objeto global y continúa como si nada estuviera mal. Algunos códigos pueden depender intencionalmente de ese comportamiento, que es algo que debe tener en cuenta cuando decida utilizar el modo estricto.

Ver también: Cómo mantener limpio su código con la encapsulación de objetos

Hace explícito el fracaso

Algún comportamiento en JavaScript falla, pero lo hace en silencio. Es posible que no conozca estos errores a menos que los esté comprobando específicamente. Por ejemplo, NaN es una propiedad especial del objeto global que representa un número no válido. Esta propiedad es de solo lectura, pero aún puede intentar escribir en ella:

NaN = 2;
>> 2

Pero aunque parece que esa tarea tuvo éxito, no fue así:

Yaya
>> NaN

En el modo estricto, obtendrá un error real que le indicará que no puede asignar a NaN. Este código utiliza una función para que pueda realizar una demostración del modo estricto en la consola:

javascript
function badNaN () {"uso estricto"; ventana. NaN = 2; }
>> indefinido
badNan ()
>> Error de tipo no detectado: no se puede asignar a la propiedad de solo lectura 'NaN' del objeto '#'
en badNaN (: 1: 46)
en: 1: 1

Este es un ejemplo clásico que muestra que, si bien la ignorancia puede ser una bendición, a veces es mejor saber si algo sale mal.

Advierte sobre parámetros duplicados

El ejemplo final trata con una característica poco conocida de JavaScript. Puede que le sorprenda saber que los nombres de los parámetros no tienen por qué ser únicos:

función dupeParam (a, a, c) {console.log (a); }
>> indefinido
dupeParam (2, 4, 8)
>> 4

Tenga en cuenta que JavaScript asigna el último valor a un parámetro duplicado. Ahora bien, este comportamiento no es particularmente útil. De hecho, sería más útil que JavaScript nos diga que es un error, y eso es exactamente lo que hace el modo estricto:

function dupeParam (a, a, c) {"uso estricto"; }
<< Error de sintaxis no detectado: nombre de parámetro duplicado no permitido en este contexto

Utilice el modo estricto para obtener más confianza en el código

Las buenas prácticas y los medios para hacerlas cumplir van de la mano. En algunos contextos, como una función de programación profesional, querrá ejercer tanta disciplina como sea posible. Incluso si solo está trabajando en un proyecto de código abierto como aficionado, es posible que el encargado de mantenimiento prefiera utilizar el modo estricto como estándar.

En última instancia, depende de usted, pero es útil saber que hay una mano amiga disponible. Como programador, siempre debe estar atento a las mejores prácticas y lo que puede hacer para hacerlas cumplir.

10 principios básicos de programación que todo programador debe conocer

Su código debe ser claro y fácil de mantener. Aquí hay varios otros principios de programación para ayudarlo a limpiar su acto.

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • Programación
  • JavaScript
  • Desarrollo web
  • Lenguajes de programación
Sobre el Autor
Bobby Jack (62 Artículos publicados)

Bobby es un entusiasta de la tecnología que trabajó como desarrollador de software durante la mayor parte de dos décadas. Es un apasionado de los juegos, trabaja como editor en jefe en Switch Player Magazine y está inmerso en todos los aspectos de la publicación en línea y el desarrollo web.

Más de Bobby Jack

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse