preloader

Modo moderno: «use strict»

Durante muchos años, JavaScript ha evolucionado sin comprometer la compatibilidad. Nuevas características fueron añadidas al lenguaje mientras que las existentes permanecían intactas.

Esto permitió que el código antiguo continuara funcionando, pero también significaba que cualquier error o mala decisión tomada en el diseño del lenguaje se perpetuaba.

Todo esto cambió en 2009 con la llegada de ECMAScript 5 (ES5). Esta versión introdujo nuevas funcionalidades y realizó algunas modificaciones a las existentes. Para garantizar la compatibilidad con el código antiguo, la mayoría de estos cambios están desactivados por defecto y deben activarse explícitamente utilizando una directiva especial: «use strict».

“use strict”

La directiva se presenta como una cadena de texto: «use strict» o ‘use strict’. Cuando se coloca al principio de un script, todo el script se ejecuta en modo “estricto”.

Por ejemplo:

				
					"use strict";

// este código funciona en modo moderno

				
			

Más adelante aprenderemos sobre las funciones, pero adelantemos que «use strict» se puede colocar al inicio de una función para activar el modo estricto solo dentro de esa función. Sin embargo, generalmente se utiliza para todo el script.

Asegúrate de colocar “use strict” al principio

Es importante asegurarse de que «use strict» esté al principio de tus scripts. De lo contrario, el modo estricto no se activará.

En el siguiente ejemplo, el modo estricto no está activado:

				
					alert("algo de código");
// la directiva "use strict" de abajo es ignorada, debe estar al principio

"use strict";

// el modo estricto no está activado

				
			

Solo pueden aparecer comentarios antes de «use strict».

No se puede desactivar «use strict»

No existe una directiva como «no use strict» que haga que el motor vuelva al comportamiento anterior.

Una vez que el modo estricto está activado, no hay forma de desactivarlo.

Consola del navegador

Cuando uses la consola del navegador para ejecutar código, ten en cuenta que no utiliza «use strict» por defecto.

En situaciones donde «use strict» hace una diferencia, podrías obtener resultados incorrectos.

Entonces, ¿cómo usar «use strict» en la consola?

Primero, puedes intentar pulsar Shift+Enter para escribir múltiples líneas y colocar «use strict» al principio, de esta manera:

				
					'use strict'; <Shift+Enter para una nueva línea>
//  ...tu código
<Enter para ejecutar>

				
			

Esto funciona en la mayoría de los navegadores, específicamente Firefox y Chrome.

Si esto no funciona, como en navegadores antiguos, hay una forma menos elegante pero efectiva de asegurar «use strict». Colócalo dentro de una función autoejecutable:

				
					(function() {
  'use strict';

  // ...tu código...
})()

				
			

¿Deberíamos usar “use strict”?

La respuesta podría parecer obvia, pero no lo es tanto.

Podríamos sugerir empezar los scripts con «use strict», pero hay algo interesante.

El JavaScript moderno soporta “clases” y “módulos”, estructuras avanzadas del lenguaje (que veremos más adelante), que habilitan «use strict» automáticamente. Por lo tanto, no es necesario agregar la directiva «use strict» si estamos usando estas estructuras.

Por ahora, «use strict» es una adición bienvenida al inicio de tus scripts. Más adelante, cuando tu código esté compuesto solo por clases y módulos, podrás omitirlo.

Hemos aprendido sobre «use strict» de manera general.

En los siguientes capítulos, mientras aprendemos nuevas características del lenguaje, veremos las diferencias entre el modo estricto y el modo no estricto. Afortunadamente, no son muchas y realmente facilitan nuestro trabajo.

Todos los ejemplos en este tutorial asumen el modo estricto, salvo que (muy raramente) se especifique lo contrario.

Related Post

Deja una respuesta

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