Los estrictos en JavaScript: igual estricto y distinto estricto

| Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

JavaScript es un lenguaje muy versátil y potente que ha ganado gran popularidad en los últimos años. Sin embargo, también es conocido por sus peculiaridades y sutilezas, que pueden llevar a resultados inesperados si no se comprenden correctamente. Una de las áreas en la que se debe tener especial cuidado son las comparaciones en JavaScript. Es aquí donde entran en juego los estrictos en JavaScript, es decir, el igual estricto y el distinto estricto.

Los estrictos en JavaScript

¿Qué son los estrictos en JavaScript?

Cuando se realizan comparaciones en JavaScript utilizando el operador de igualdad (==) o el operador de desigualdad (!=), se realiza una comparación “suelta” que no tiene en cuenta el tipo de los valores involucrados. Esto significa que JavaScript intentará convertir los operandos a un tipo común antes de realizar la comparación. Aunque esto puede ser útil en algunos casos, también puede derivar en resultados inesperados.

Por otro lado, el igual estricto (===) y el distinto estricto (!==) son comparadores que sí tienen en cuenta el tipo de los valores antes de realizar la comparación. Si los tipos son diferentes, la comparación se considerará automáticamente falsa, incluso si los valores pudieran convertirse en tipos similares. De esto se tratan los estrictos en JavaScript.

Ventajas de los estrictos en JavaScript

Al utilizar los estrictos en JavaScript, se evitan errores sutiles y se obtienen resultados más predecibles y lógicos. Esto ayuda a mantener el código más limpio, coherente y menos propenso a errores.

Evita errores con el uso de use strict

Una práctica recomendada para evitar confusiones y errores en JavaScript es utilizar la declaración 'use strict'. Esta directiva activa el modo estricto, lo que significa que el código se ejecutará en un entorno más seguro y con un comportamiento más predecible. Además, ayuda a encontrar errores comunes, como variables no declaradas y el mal uso de this.

Ejemplo práctico de igual estricto y distinto estricto

A continuación, vemos un ejemplo sencillo para entender mejor cómo funcionan los estrictos en JavaScript:

//Los estrictos en JavaScript
'use strict';

const fruta1 = 5;       // Tipo número
const fruta2 = '5';     // Tipo string

//Los estrictos en JavaScript II
if (fruta1 === fruta2) {
  console.log('Las frutas son iguales en valor y tipo');
} else if (fruta1 == fruta2) {
  console.log('Las frutas son iguales solo en valor');
} else {
  console.log('Las frutas son diferentes en valor y/o tipo');
}

En este caso, al utilizar el igual estricto (===), la condición se evaluará como falsa, porque las frutas tienen tipos diferentes (número y string). Sin embargo, si utilizamos el operador de igualdad (==), la condición sería verdadera, porque JavaScript convertirá el número en un string antes de realizar la comparación.

Cuidado con el this en JavaScript

Otra característica importante en JavaScript es el uso del this. Cuando se crea un objeto utilizando la palabra clave new, this hace referencia al objeto propietario o al objeto que se está creando.

Sin embargo, al utilizar this, es crucial tener en cuenta cómo se invocará la función, ya que dependiendo de la forma de invocación, el valor de this puede cambiar y conllevar resultados inesperados.

Solución: el método bind

Para asegurarte de que una función se ejecuta con el valor correcto de this, puedes utilizar el método bind. Este método crea una nueva función, que tiene el mismo cuerpo que la función original, pero el objeto this se asocia con él.

//Los estrictos en JavaScript: uso del método bind
'use strict';

function Fruta(nombre) {
  this.nombre = nombre;
}

Fruta.prototype.saluda = function() {
  console.log('Hola, soy ' + this.nombre);
};

//Los estrictos en JavaScript II
const limon = new Fruta('Limón');
const tomate = new Fruta('Tomate');

setTimeout(limon.saluda.bind(limon), 2000); // Después de 2 segundos: "Hola, soy Limón"
setTimeout(tomate.saluda.bind(tomate), 2000); // Después de 2 segundos: "Hola, soy Tomate"

Al utilizar bind, creamos una nueva función saluda asociada al objeto limon y tomate, lo que nos asegura que this será el objeto correcto en el momento de la ejecución.

Conviértete en un experto

Si te apasiona el mundo de la programación y sueñas con convertirte en un profesional del desarrollo web, el Desarrollo Web Full Stack Bootcamp de KeepCoding es la opción ideal para ti. Con este bootcamp, cambiarás tu vida en poco tiempo al convertirte en un experto en tecnología y programación.

Durante la formación, aprenderás todos los fundamentos del desarrollo web, desde HTML, CSS y JavaScript hasta frameworks populares, como React y Node.js. Además, adquirirás habilidades prácticas y experiencia trabajando en proyectos reales, lo que te permitirá destacar en el competitivo mundo del desarrollo web. ¡No dejes pasar esta oportunidad única de cambiar tu vida y entrar en el sector IT!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado