¿Cuál es la mejor manera de aprender ES2015?

Arthur Kay discutió recientemente cuatro maneras fáciles de comenzar a usar ES2015 en su código en un gran artículo. He resumido sus puntos principales aquí:

1. Declarar variables con let y const.

En el código tradicional de ES5, los ingenieros de JavaScript a menudo lamentaban las limitaciones (y, a veces, el comportamiento extraño) de las variables: falta de alcance de bloque y falta de constantes verdaderas. En ES2015, estos dos problemas se han resuelto con la adición de dos nuevas palabras clave: let y const .

Block Scope with let

Declarar variables con le permite limitar el uso (alcance) de esa variable al bloque, la declaración o la expresión en la que se usa.

// en ES5
var a = 1;
si es verdad) {
var b = 2;
}

console.log (a); // 1
console.log (b); // 2

// en ES2015
deja a = 1;
si es verdad) {
sea ​​b = 2;
}

console.log (a); // 1
console.log (b); // ReferenceError: b no está definido

Crear constantes con const

ES2015 nos permite declarar variables verdaderamente constantes utilizando la nueva palabra clave const :

// en ES5
var MY_CONSTANT = true;
MY_CONSTANT = falso;
// el valor puede ser reasignado, no es realmente una “constante”

// en ES2015
const MY_CONSTANT = true;
MY_CONSTANT = falso;
// TypeError no detectado: Asignación a variable constante

2. Literales de plantillas

Con ES2015, ya no necesitamos confiar en las funciones de formato de cadenas de terceros debido a los nuevos literales de plantilla:

// en ES2015
let url = `http: //www.$ {domain} .com / $ {path}? $ {queryParams}`;

3. Nuevas primitivas: conjunto y mapa

ES2015 introdujo un puñado de nuevas primitivas para JavaScript.

Usando Set en lugar de Array

En JavaScript, necesitamos lógica condicional para agregar elementos a nuestra colección:

// en ES5
función addToCollection (colección, valor) {
if (collection.indexOf (valor) <0) {
collection.push (valor)
}
}

ES2015 proporciona un nuevo conjunto primitivo llamado para ayudarnos a manejar estas situaciones con mayor facilidad:

// en ES2015
let collection = new Set ();
collection.add (1);
collection.add (2);
collection.add (1);
console.log (colección); // Establecer {1, 2}

Como puede ver, nuestra colección no contiene una entrada duplicada para el número 1. La nueva primitiva Set también nos brinda una variedad de nuevos métodos para iterar y manipular los valores dentro de la colección.

Usando Mapa en lugar de Objeto

De manera similar, los desarrolladores de JavaScript están familiarizados con el uso de Objetos genéricos para almacenar datos arbitrarios:

// en ES5
cosa var = {};
thing.a = ‘abc’;
thing.b = ‘xyz’;

Con ES2015, tenemos acceso a una nueva primitiva: el mapa. Un Mapa es simplemente un contenedor para pares clave / valor que resuelve o elimina algunos problemas comunes para los desarrolladores.

// en ES2015
let thing = new Map ();
thing.set (‘a’, ‘abc’);
thing.set (‘b’, ‘xyz’);

No querrá usar Mapas en lugar de Objetos en todas partes, pero hacen que la iteración sobre colecciones de clave / valor sea mucho más fácil.

// en ES2015
let collection = new Map ();
//… agrega algunos pares clave / valor con collection.set ()

collection.forEach (función (valor, clave) {
// ¡ya no necesita usar la comprobación hasOwnProperty ()!
});

// ¿Cuántos elementos hay en el mapa?
console.log (collection.size); // ¡Es fácil de descubrir!

4. Parámetros de función

Con ES2015, trabajar con funciones y sus parámetros es más fácil que nunca. Específicamente, hay dos características nuevas que puede comenzar a usar con una curva de aprendizaje mínima.

Valores predeterminados

En el código ES5 tradicional, si queríamos un comportamiento predeterminado, teníamos que probar explícitamente la presencia de ese valor y, opcionalmente, asignar un valor predeterminado.

// en la función ES5 doSomething (someObject) {if (someObject === undefined) {someObject = {}; } console.log (someObject); }

Ese enfoque ciertamente no es horrible, pero hay dos problemas obvios:

  1. Si olvidamos probar contra indefinido, existe una alta probabilidad de errores de tiempo de ejecución.
  2. Como se muestra, este patrón agrega tres líneas de código para cada parámetro que acepta la función: un código que honestamente no agrega mucho valor y distrae el propósito real de la función.

ES2015 nos permite asignar valores predeterminados de manera declarativa con facilidad:

// en ES2015
función doSomething (someObject = {}) {
console.log (someObject);
}

Destrucción de objetos

En muchos casos, una función puede esperar un parámetro como un objeto con propiedades clave / valor específicas. Esta es generalmente una buena práctica para que la función evite la fragilidad de numerosos argumentos, pero también puede crear código excesivamente detallado y repetitivo cuando se intenta acceder a las propiedades del objeto.

// en ES5
función doSomething (someObject) {
console.log (someObject.propOne);
console.log (someObject.propTwo);
console.log (someObject.propThree);
}

Con ES2015, podemos destruir el parámetro objeto para proporcionar un acceso limpio a sus propiedades:

// en ES2015
función doSomething ({propOne, propTwo, propThree}) {
console.log (propOne);
console.log (propTwo);
console.log (propThree);
}

Conclusión

ES2015 incluye lo primero de lo que probablemente serán muchas adiciones y mejoras a JavaScript en los próximos años. Aunque algunas de estas características nuevas parecen extrañas y atemorizantes, la realidad es que son opcionales: ninguno de nuestros patrones de código probados y confiables nos son quitados. Todo su código existente seguirá funcionando, pero las cuatro características de ES2015 presentadas en este artículo son formas realmente simples en las que puede comenzar a beneficiarse de inmediato.

Artículo original: 4 maneras fáciles de comenzar a usar ES2015 desde Codementor

La palabra clave es el equilibrio.

Demasiada teoría lleva a una mayor familiaridad con los casos de borde que nunca utilizará en la práctica. Los desarrolladores de software resuelven problemas significativos en la práctica. Por ejemplo, con símbolos bien conocidos, puede aprender cómo piratear el comportamiento esperado de JavaScript de manera que las operaciones inocentes se comporten de una manera inesperada. ¿Cuál es el resultado? Caos.

Cuando se trata de la teoría, se aplica el principio de Pareto: el 20% de la teoría le proporciona el 80% del conocimiento que necesita. La belleza es que, una vez que obtenga el 80% del conocimiento, será mucho más rápido para recoger lo que necesite.

Demasiada práctica a costa de la teoría puede llevar a desarrollar malos hábitos que violan las mejores prácticas.

Necesitas una combinación de teoría y práctica. Teoría que explica los fundamentos, y ejercicios que te permiten descubrir el resto. Como un efecto secundario del descubrimiento, desarrollará habilidades que son útiles cuando se enfrenta a un caso de vanguardia.

Si está interesado en un tutorial equilibrado con bonificaciones como los ejercicios ES2016, ES2017, 59 y un plan de estudio para vincular el aprendizaje con sus proyectos paralelos, consulte ES6 en Práctica .

Al momento de escribir este post, ES6 en la práctica se encuentra en la página de inicio de Leanpub.

He trabajado con ES6 durante un año. No es difícil de aprender, solo unos pocos cambios en la sintaxis, pensemos que sí.

Al principio, leí algunos artículos sobre las cosas interesantes en ES6. Luego, comencé a reescribir mis aplicaciones node.js usando una nueva sintaxis. Con Understanding ECMAScript 6 por Nicholas C. Zakas – Codifico y leo al mismo tiempo:

https://leanpub.com/understandin

Espero que esto ayude.