ECMAScript 6, también conocido como ES6, fue lanzado en junio de 2015 y trae una gran cantidad de características nuevas y mejoras al lenguaje. Algunas de las características más importantes incluyen:
Sintaxis de clases: ES6 introduce una nueva sintaxis para la creación de clases en JavaScript. Esto hace que el código sea más fácil de leer y entender, especialmente para desarrolladores con experiencia en lenguajes orientados a objetos. Ejemplo:
classPersona{constructor(nombre, edad){this.nombre= nombre;this.edad= edad;}saludar(){console.log(`Hola, mi nombre es ${this.nombre} y tengo ${this.edad} años.`);}}const persona =newPersona("Juan",30);persona.saludar();// Output: "Hola, mi nombre es Juan y tengo 30 años."
Template literals: ES6 introduce una nueva sintaxis para crear cadenas de texto de manera más sencilla y legible. Esto permite la interpolación de variables y expresiones dentro de las cadenas de texto. Ejemplo:
const nombre ="Juan";const edad =30;console.log(`Hola, mi nombre es ${nombre} y tengo ${edad} años.`);// Output: "Hola, mi nombre es Juan y tengo 30 años."
Arrow functions: ES6 introduce una nueva sintaxis para crear funciones anónimas de manera más corta y sencilla. Esto hace que el código sea más legible y fácil de escribir. Ejemplo:
Spread operator: El spread operator es una característica que permite expandir un array o un objeto en una lista de valores. Se representa con los tres puntos (...) y se utiliza para copiar elementos de un array o para combinar elementos de varios arrays en uno solo. También se utiliza para pasar argumentos a una función de manera dinámica. Ejemplo:
Destructuring: ES6 introduce una nueva sintaxis para asignar valores de un objeto o un array a variables de manera más sencilla y legible. Ejemplo:
const persona ={nombre:"Juan",edad:30};const{nombre, edad}= persona;console.log(nombre);// Output: "Juan"console.log(edad);// Output: 30
Manejo de módulos: ES6 permite la importación y exportación de funciones y variables entre archivos de manera más sencilla y estructurada. Por ejemplo:
Nuevos métodos de arrays: ES6 incluye métodos como "Array.prototype.find" y "Array.prototype.findIndex" que facilitan la búsqueda de elementos en un array.
const numeros =[1,2,3,4,5];const encontrado = numeros.find(n=> n ===3);console.log(encontrado);// Output: 3
Manejo de promesas: ES6 incluye mejoras en el manejo de promesas, permitiendo la utilización de métodos como "Promise.prototype.finally" para ejecutar código independientemente del resultado de la promesa.
Try catch: En cuanto al manejo de errores y excepciones, ES6 incluye la introducción de la palabra clave "try-catch" para el manejo de bloques de código que pueden generar excepciones.
try{// código que puede generar excepciones}catch(error){console.log(error);}
Creo que hay un pequenio error. Promise.prototype.finally son parte de ES9
concuerdo contigo
¡Qué duros para saber eso! Yo ni idea de los ES+ posteriores al 6 jaja
ES6: mejoras más importantes
.
ES6, también conocido como ECMAScript 2015, es una versión relevante de JavaScript que fue lanzada en junio de 2015. Es la primera actualización significativa del lenguaje en varios años, y trae consigo una gran cantidad de mejoras y nuevas características.
.
Entre las mejoras más importantes de ES6 se encuentran:
.
Declaración de variables mejorada: Con ES6, se introdujeron dos nuevas formas de declarar variables: "let" y "const". Esto permite un mejor control del alcance de las variables y ayuda a prevenir errores comunes en JavaScript.
.
Arrow functions: Las funciones de flecha, o arrow functions, son una forma más corta y legible de escribir funciones en JavaScript. Son especialmente útiles cuando se trabaja con arrays y objetos.
.
Template literals: Los template literals son una forma más fácil y legible de crear cadenas de texto. Permiten la interpolación de variables y expresiones dentro de cadenas de texto, lo que hace que el código sea más limpio y fácil de entender.
.
Promesas: Las promesas son una forma de manejar tareas asíncronas en JavaScript. Con ES6, se introdujeron las promesas nativas en el lenguaje, lo que hace que sea más fácil trabajar con operaciones asíncronas.
.
Módulos: ES6 introduce un nuevo sistema de módulos que permite a los desarrolladores dividir su código en pequeñas piezas reutilizables. Esto hace que sea más fácil de mantener y de trabajar en proyectos más grandes.
Dado que los objetos en JS son referencias a espacios en memoria, que se halla incluido el spread operator es muy importante para evitar side effects
Las funciones anónimas en JavaScript son aquellas que no han sido declaradas con un nombre. En este lenguaje de programación, podemos declarar este tipo de elemento usando cualquiera de los modos de escribir funciones.
31/89 ES6
ES6 trae una fran cantidad de características nuevas y mejoras al lenguaje JavaScript incluyendo:
Parametros por defecto: ES6 permite la asignación de valores por defecto a los parámetros de una función
functionsuma(a, b =0){return a + b;}suma(2);// Output: 2suma(2,3);// Output: 5
Object literal shortland: ES6 introduce una nueva sintaxis para crear objetos literales de manera más sencillas y legible
const nombre ="Juan";const edad =30;const persona ={ nombre, edad };console.log(persona);// Output: { nombre: "Juan", edad: 30 }
Promises: ES6 incluye una nueva forma de manejar operaciones asíncronas mediante la utilización de promesas
classDragonBall{constructor(personaje, ki){this.personaje= personaje;this.ki= ki;}saludar(){console.log(`Yo soy ${this.personaje} y mi poder es ${this.ki}`);}}const persona =newDragonBall("Goku",300000000000000000000000000000000000);;persona.saludar();
Además del spread operator, se añadió otra función con los tres puntos (...) llamada rest operator.
Dejo un ejemplo:
/*-----------------------Operador de propagación (...)-----------------------*/let person ={name:"Alexa",age:24};let country ="COL";//let data = [...person, country ]; //error por ser array. Solo se pueden copiar de array a arrays y objects a objectslet data ={...person, country };//... permite que se copien los elementos del object person a un nuevo objetoconsole.log(data);//{ name: 'Alexa', age: 24, country: 'COL' } Adiciona en su contenido el contenido del object person y el valor de country (en este caso se guarda como una propiedad-valor)let pares =[2,4,6,8,10];//para arrays también sirvelet copyPar =[...pares];let paresVeinte =[...pares,12,14,16,18,20];console.log(copyPar);//[ 2, 4, 6, 8, 10 ]console.log(paresVeinte);//[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]/*-----------------------Parámetro rest (resto)-----------------------*/const array =[1,2,3,4,5];functionhola(primero, segundo,...resto){// Parámetro Rest (... + nombre de variable que almacenará el array). A diferencia del spread operator, este siempre va al final y guarda el resto de elementos que se pasen como argumento a la función en un arrayconsole.log(primero, segundo)// 1 2console.log(resto)// [3,4,5, "final"]}hola(...array,"final")//<- Operador de propagación (pasa como argumentos 1,2,3,4,5)//Lo mismo que hacer -> hola(1,2,3,4,5, "final")//También sirve para obtener los elementos restantes de un array u objeto usando desestructuraciónconst objeto ={nombre:"Andres",age:23,plataforma:"Platzi"}const arrayNumber =[0,1,2,3,4,5]const{plataforma,...usuario}= objeto;const[cero,...positivos]= arrayNumber;console.log(usuario);// { nombre: 'Andres', age: 23 }console.log(positivos);// [ 1, 2, 3, 4, 5 ]