Contenido del curso

¿Qué se implementó en ES6?

let, const y arrow functions en ES6

Resumen

ECMAScript 6, lanzado en junio de 2015, marcó el punto de inflexión que convirtió a JavaScript en el lenguaje dominante del desarrollo web. Aquí entenderás cómo funcionan let, const y las arrow functions, tres pilares que cambiaron la forma de escribir código moderno y que cualquier persona que programe en JavaScript necesita dominar.

Por qué ECMAScript 6 marcó un antes y un después en JavaScript

Desde su nacimiento, JavaScript fue evolucionando con versiones puntuales, pero recién en 2015 llegaron las mejoras profundas que lo posicionaron como un superlenguaje. A partir de ahí surgieron muchos de los frameworks y librerías que hoy son estándar en la industria.

La actualización trajo nuevas palabras reservadas, una sintaxis más amigable y conceptos como el block scope que cambiaron las reglas del juego frente al clásico function scope de var [00:35].

¿Qué es ECMAScript 6? Es la versión de JavaScript publicada en junio de 2015 que incorporó let, const, arrow functions, clases y otras mejoras que modernizaron el lenguaje.

Cómo funcionan let y const frente a var

En JavaScript, declarar significa crear la variable, asignar es darle un valor inicial y reasignar es cambiar ese valor después. Cada palabra reservada se comporta distinto en estas tres acciones [03:30].

Con var puedes declarar, asignar y reasignar sin restricciones. Por ejemplo, una variable lastName con valor David puede reasignarse a Óscar y el console.log mostrará el último valor [04:40].

Con let también puedes reasignar. Una variable fruit con valor apple puede pasar a kiwi sin problema [05:30]. La diferencia con var no está en la reasignación, sino en el alcance.

Con const la historia cambia: si intentas reasignar una variable animal declarada como dog a cat, el motor lanza un error inmediato [06:05]. Const protege el valor original frente a sobrescrituras accidentales.

Qué diferencia hay entre function scope y block scope

El alcance es donde una variable existe y puede ser leída. var vive dentro de toda la función donde fue declarada, lo que se conoce como function scope. let y const viven solo dentro del bloque donde nacieron, es decir, dentro de las llaves del if, for o cualquier estructura, lo que se llama block scope [08:30].

Un ejemplo claro: dentro de una función fruits que contiene un if (true), declaras tres variables.

  • var fruit1 = 'apple'.
  • let fruit2 = 'kiwi'.
  • const fruit3 = 'banana'.

Al intentar imprimirlas fuera del if, fruit1 se muestra sin problema, pero fruit2 dispara un ReferenceError: fruit2 is not defined [09:10]. Lo mismo pasaría con fruit3. Los errores aquí son tus aliados: te dicen exactamente dónde falla la referencia.

¿Cuándo debo usar const en vez de let? Usa const cuando el valor no va a cambiar durante la ejecución, como funciones, configuraciones o referencias fijas. Usa let cuando necesites reasignar el valor más adelante.

Cómo escribir arrow functions y por qué simplifican tu código

Las arrow functions son una expresión alternativa a las funciones tradicionales con sintaxis más corta y reglas particulares [11:20]. No tienen su propio this, no se usan como constructores y no acceden al objeto arguments. Están pensadas para escribir lógica concreta sin el peso de una función completa.

Una función clásica para elevar al cuadrado se vería así:

javascript function square(num) { return num * num; }

La misma lógica con arrow function y bloque explícito queda más limpia [13:00]:

javascript const square = (num) => { return num * num; };

Y si solo tienes una línea, puedes usar el return implícito, eliminar las llaves y, cuando hay un único parámetro, también los paréntesis:

javascript const square = num => num * num;

Esto se lee casi como una fórmula matemática. La recomendación práctica es declarar las arrow functions con const, porque normalmente no quieres que alguien reasigne tu función por accidente.

Cuándo conviene mantener las llaves y el return

El return implícito solo funciona con una expresión en una sola línea. Si tu función tiene varias líneas, validaciones o múltiples pasos, necesitas abrir las llaves y escribir el return de forma explícita [14:50]. Forzar el return implícito en código complejo termina haciendo lo contrario de lo que buscabas: hace el código más difícil de leer.

¿Qué ventajas tiene una arrow function frente a una función normal? Sintaxis más corta, return implícito en una línea, y no tiene su propio this, lo que evita errores comunes al trabajar con callbacks y métodos de array.

Ahora que ya tienes claras estas tres piezas, prueba reescribir alguna función vieja que tengas con var y function, y cuéntame en los comentarios qué cambios notaste al pasarla a const y arrow function.