Resumen Avanzado de JavaScript
Modo Estricto ("use strict")
El modo estricto activa una versión más segura de JavaScript. Se escribe como "use strict"; al comienzo del
archivo o función.
Este modo evita errores comunes como declarar variables sin `let` o `const`, y prohíbe nombres reservados
como `eval`, `arguments`, etc.
Ejemplo:
"use strict";
x = 10; // Error, x no está declarada.
Operador Ternario (condición ? expr1 : expr2)
Es un atajo para una estructura if-else simple.
Ejemplo:
let edad = 20;
let mensaje = edad >= 18 ? "Mayor de edad" : "Menor de edad";
Devuelve un valor según si la condición es verdadera o falsa.
Optional Chaining (?.)
Permite acceder a propiedades sin causar errores si alguna es undefined o null.
Ejemplo:
persona?.direccion?.ciudad
Si persona o direccion no existen, no da error, devuelve undefined.
Nullish Coalescing (??)
Devuelve el segundo valor solo si el primero es null o undefined.
Ejemplo:
let nombre = "";
let resultado = nombre ?? "Sin nombre";
En este caso, resultado será "" porque no es null ni undefined.
Diferencia con ||: este último también considera "" y 0 como falsy.
Resumen Avanzado de JavaScript
Logical OR (||)
Devuelve el segundo valor si el primero es falsy (false, 0, "", null, undefined, NaN).
Ejemplo:
let usuario = "";
let nombre = usuario || "Invitado";
Aquí devuelve "Invitado" porque "" es falsy.
IIFE (Immediately Invoked Function Expression)
Una función que se ejecuta inmediatamente después de definirse.
Sirve para crear un ámbito privado.
Ejemplo:
(function() {
let mensaje = "Hola";
[Link](mensaje);
})();
Esto evita contaminar el scope global.
Patrón Módulo (Module Pattern)
Usa una IIFE para encapsular variables privadas y exponer solo funciones públicas.
Ejemplo:
const MiModulo = (function() {
let secreto = "clave";
function mostrar() {
[Link](secreto);
return { mostrar };
})();
[Link](); // Muestra "clave", pero no se puede acceder directamente a `secreto`. Ideal para
organizar código en módulos.