Novedades de ECMAScript 2105 (ES6)

ECMAScript

ECMAScript se refiere a las nuevas características del estándar ECMA-262 conocidos como JavaScript, introducido después de ECMAScript 2015. Las nuevas versiones de las especificaciones ECMAScript se liberan anualmente, ES2016 será liberado y el ES2017 es el proyecto actual ECMAScript.

Definición de variables

Para solventar las deficiencias de las variables declaradas con _var, _hay dos nuevas palabras reservadas: _let _para declarar variables que cambian de valor y _const _para constantes. También se pueden declarar símbolos que son identificadores de tipos únicos e inmutables.

El problema de las variables declaradas con _var _está en que tienen ámbito de función con _let _no existe hasta que es declarada. Las variables con _var _son declaradas al principio del ámbito de la función o en el ámbito global.

Interpolación de variables en cadenas

La interpolación de variables en cadena facilita la construcción de strings y hace el código más legible. Los strings se hacen con las comillas invertidas o francesas ( ` )

const now = newDate(Date.now());
const message = `¡Hola ${now.getFullYear()}!`;

console.log(message);  // ¡Hola 2016!

Desestructuración

Se ha incorporado la asignación desestructurada pudiendo hacer cosas como las siguientes en las asignaciones y en las llamadas a las funciones:

// Arrays

const array = [1, 2];
const [a, b] = array;
  console.log(`${a}, ${b}`); // 1, 2

// Objects

constobject = { name: 'Jhon', age: 30};
const {name, age} = object;
  console.log(`${name}, ${age}`);  // Jhon, 30 

// Functions

function whois({displayName: displayName, fullName: { firstName: name }}){
  console.log(`${displayName} is ${name}`);
}


var user = {
  id: 42,
  displayName: "jdoe",
  fullName: {
      firstName: "Jhon",
      lastName: "Doe"
    }
};

whois(user);  // Jhon Doe is jdoe

Operador spread

El operador spread permite a una expresión sea expandida en lugares donde se esperan múltiples argumentos como en llamadas a funciones, múltiples elementos para literales de _arrays _o múltiples variables para asignación desestructurada.

const array1 = [1, 2, 3];
const array2 = [...array1, 4, 5, 6]
  console.log(array2);  // Array [ 1, 2, 3, 4, 5, 6 ]

function func(x, y, z) {
  console.log(`${x}, ${y}, ${z}`);
}

func(...array1);  // 1, 2, 3

Clases

Anteriormente en JavaScript ya se podían definir clases haciendo uso de la propiedad prototype _aunque su sintaxis ahora se ha simplificado y hecho más parecida a otros lenguajes además de definir propiedades con su método _getter _y _setter.

class Vehiculo{
  constructor() {
    this._marca = 'Seat';
    this._color = 'rojo';
    this._kilometros = 100;
  }

  get color() {
    return this._color;
  }
  set color(c) {
    this._color = c;
  }
}


class Coche extends Vehiculo{
  get kilometros() {
    return this._kilometros;
}
  set kilometros(k) {
  this._kilometros = k;
  }
}


const coche = newCoche();
console.log(coche.color); // rojo

y otros features como:

  • Objetos map y set
  • Callback y promise
  • Generadores
  • Eventos

Para más información sobre ESMAScropt 6, vea el siguiente enlace: http://es6-features.org/

results matching ""

    No results matching ""