JavaScript

ES6

¿Qué es ES6?

1 - Introducción

  • ES6 es EcmaScript 6. Este, a su vez, es el estándar en el que se basa JavaScript (y otros lenguajes).
     
  • ES6 es una nueva versión de JavaScript que añade un montón de nuevas características.
     
  • EcmaScript 6 fue publicado a finales de 2015 y, en este momento, es plentamente funcional y aceptado por todos los navegadores modernos.

Constantes

  • Las constantes son referencias a valores constantes que se definen una única vez por contexto de ejecución. 
  • Los valores primitivos son inmutables, pero los compuestos pueden ver sus propiedades modificadas.
const nombre = ["Juan"];
console.log(nombre);
nombre = "Andrés";

/*
"TypeError: Assignment to constant variable [...]
*/

2 - Novedades ES6

Variables de ámbito de bloque

  • Hasta ahora, las variables en JavaScript tenían ámbito de función (declaradas dentro de funciones). 
  • Ahora, se pueden definir en bloques, delimitados por {}, que mantendrán su independencia.
  • Las variables creadas con let no son alzadas (hoist).
for (let i = 0; i <= 100; i++) {
    console.log(i);
}
console.log(i); // undefined

{
    let nombre = "Juan";
}
console.log(nombre); // undefined

2 - Novedades ES6

Funciones flecha

  • La nueva sintaxis arrow para definir funciones las hace más ligeras.
  • Las funciones flecha tienen return implícito.
  • Las funciones flecha no tienen su propio this, sino que lo heredan de contexto en el que se encuentran.
  • Además, las funciones flecha no son alzadas (hoist).
function saludar(nombre) {
    alert('Hola ' + nombre);
}

var saludar = nombre => alert('Hola ' + nombre);
saludar("Juan");

var persona = {
    nombre: "Juan",
    saludar: () => alert(this.nombre),
};
persona.saludar(); // undefined

2 - Novedades ES6

Parámetros por defecto

  • Ahora, las funciones pueden tener parámetros definidos por defecto que serán usados si no se definen en la invocación.
  • Si se quiere utilizar un valor de parámetro por defecto y además definir otros parámetros, debes usar undefined como comodín.
function comprar(precio, impuesto = .21) {
    return precio + (precio * impuesto);
}

var iphone = comprar(1000); // 1210
var iphone = comprar(1000, .50); // 1500

2 - Novedades ES6

String templating

  • Con ES6 es posible interpolar variables y expresiones envolviendo con el carácter ` (back-tick).
  • También, usando el mismo método, podemos crear strings multi línea.
function nombrar(nombre, ciudad) {
  alert(`Te llamas ${nombre} y vives en ${ciudad}`);	
}
nombrar("Juan", "Valencia");

var multiLinea = `Hola 
qué tal`;

2 - Novedades ES6

JavaScript ES6

By Juan Andrés Núñez

JavaScript ES6

  • 897