Las funciones flecha
Porque manejar callbacks (sobretodo en llamadas basadas en promesas como fetch) escribiendo function por cada uno de los handlers que vayas a usar es ilegible.
fetch('/my-endpoint')
.then(function (response) { return response.text(); })
.then(function (text) { console.log(text); });
vs
fetch('/my-endpoint')
.then(response => response.text())
.then(text => console.log(text));
El operador "spread" (los tres puntitos)
Vale que no ganas demasiado en líneas netas, pero mira que limpio y chulo queda todo
const myArray = [1, 2, 3];
const anotherArray = [...myArray, 4, 5, 6];
vs
var myArray = [1, 2, 3];
var anotherArray = [].concat(myArray, [4, 5, 6]);
const myObj = {
name: "Perico"
};
const anotherObj = {
...myObj,
lastname: "De Los Palotes"
};
vs
var myObj = {
name: "Perico"
};
var anotherObj = Object.assign({}, myObj, {
lastname: "De Los Palotes"
});
Meh...
El destructuring
Una de las cosas más útiles que tiene ES6 de largo y que, hasta donde yo se, no hay forma de emular en ES5
const [head, ...tail] = [1, 2, 3, 4]; // head = 1; tail = [2, 3, 4]
Array.slice
es para gente que no mola
Los loops for-of
for (var i in myArray) {
var item = myArray[i];
}
vs
for (const item of myArray) {
// item ya es el elemento "que toque" en cada vuelta del loop
}
Lo de usar índices es para los antiguos...
Seguro que un huevo de cosas más
pero no sabes cuales porque sigues usando var
para declarar variables.
Disclaimer! Espero que se vea que el artículo va con algo de sorna y tono de broma, que nadie se ofenda si se siente identificado con los antiguos (o los vellos como dicen por Galicia).