Hoja de referencia rápida y práctica de JavaScript de Toptal: ES6 y más allá
Publicado: 2022-03-11ECMAScript 6 (ES6) es la última especificación estándar de JavaScript , el lenguaje de programación de la Web. Desde HTML5 y el nacimiento de Node.js , el tiempo de ejecución que nos permite ejecutar JavaScript en el servidor o el escritorio, JavaScript ha cobrado un impulso único. Hay una tasa de adopción creciente entre las empresas, que lo incorporan a la producción y, por lo tanto, sus características más nuevas fueron muy esperadas.
Creamos esta hoja de trucos como una lista de las funciones de ES6 que usamos todos los días. Tratando de ser completo pero conciso al mismo tiempo, los nuevos métodos API se dejan de lado. Para aquellos que los necesitan, realice una búsqueda rápida por sí mismo o intente explorar la documentación de MDN para obtener las API experimentales más recientes. Sin embargo, se incluyen algunas de las características más avanzadas, como async
y await
del próximo borrador de especificación (ES7). Esto se debe a que la mayoría de nosotros, los desarrolladores, usaremos un transpilador como Babel de todos modos para aprovechar el JavaScript más nuevo.
Puede probar algunos de los consejos mencionados ejecutando el nodo REPL con este comando:
node --use-strict $(node --v8-options | grep harm | awk '{print $1}' | xargs) #ES6
O use directamente un nodo de babel para aprovechar al máximo Javascript en su consola.
Haga clic aquí para descargar la hoja de trucos de JavaScript ES6
Hoja de referencia de JavaScript (ES6 y posteriores)
constantes | let vs var | |
> constante EULER = 2.7182818284 | > var promedio = 5 | |
¡Advertencia! Si es una matriz o un objeto, la referencia se mantiene constante . Si la constante es una referencia a un objeto, aún puede modificar el contenido, pero nunca cambiar la variable. | ||
> const CONSTANTES = [] | Tenga en cuenta las zonas muertas temporales : | |
> consola.log(val) // -> 'indefinido' | ||
Porque es equivalente a: | ||
Notación binaria, octal y hexadecimal | > valor var | |
> 0b1001011101 // 605 | ||
Las variables declaradas con "let/const" no se elevan: | ||
Nuevos tipos | > consola.log(valor) | |
Símbolos, mapas, mapas débiles y conjuntos | ||
función de flecha | Nuevas funciones de ámbito | |
> establecerTiempo de espera(() => { | > { | |
Equivalente a función anónima | Equivalente a Expresiones de función invocadas inmediatamente (IIFE) | |
> establecerTiempo de espera (función () { | > (función () { | |
Novedades de la notación de objetos | Interpolación de cadenas, gracias a los literales de plantilla | |
// Propiedades calculadas // Objetos literales // Igual que } | > const nombre = 'Tigre' // Podemos conservar las nuevas líneas... ![]() | |
Parámetros predeterminados | ||
> función cómo estás (respuesta = 'ok') { | ||
promesas | Clases, Herencia, Setters, Getters | |
nueva Promesa((resolver, rechazar) => { | clase Rectángulo extiende Forma { | |
Destrucción de arreglos | Destrucción de objetos | |
> sea [a, b, c, d] = [1, 2, 3, 4]; | > let luke = { ocupación: 'jedi', | |
Operador de propagación | ...Ve a desestructurar como un jefe | |
// Convierte arreglos separados por comas | > const [gato, perro, ...pez] = [ | |
O haz un mejor empujón | ...y desestructuración en el futuro ES7 | |
> sea arr = [1, 2, 3] | {a, b, ...descanso} = {a:1, b:2, c:3, d:4} | |
Asíncrono ES7 | Espera ES7 | |
función asíncrona schrödinger () { | tratar { | |
Exportar ES7 | Importando ES7 | |
función de exportación sumTwo (a, b) { | importar reaccionar desde 'reaccionar' | |
Generadores | ||
Devuelven objetos que implementan un protocolo de iteración. es decir, tiene un método next() que devuelve { valor: < algún valor>, hecho: <verdadero o falso> } . | ||
function* incRand (max) { // Asterisk define esto como un generador | ||
> var rng = incRand(2) // Devuelve un objeto generador |