#Inicios modestos
Javascript fue creado en Mayo de 1995, por Brendan Eich, en ese entonces solo funcionaba en Netscape En diciembre de ese año, fue presentado como lenguaje para el lado del servidor, corriendo en Netscape Enterprise Server, no fue hasta mediados de los años 200x que aparecio Node.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_in_JavaScript
Su nombre oficial es ECMAScript
Pasaron 6 años desde que salio ES5 (diciembre 2009), el que todos conocemos, y usamos a diario, hasta que se estandarizo version ES6 (June 2015), debedio a esto desde ES7 las estandarizaciones van a ser mas frecuentes, con deadlies de 1 año. Pero no quiere decir que año a año veamos cambios tan grandes como ocurrio con ES6
#ES6
El proceso de estandarizacion lleva mucho tiempo
[imagen-de-soporte]
http://kangax.github.io/compat-table/es6/
#Babel
Gracias a herramientas de transpilacion, como babel, podemos escribir en el nuevo javascript, sin preocuparnos demaciado por la compatibilidad.
Transforma la sintaxis de ES6 para que pueda ser ejecutada
##Features de ES6 Sin entrar en mucho detalle
Anteriormente en ES5, teniamos este problema con el alcance (scope) de variables
var mensaje = "hola meetup";
while(true){
var mensaje = "chau meetup";
console.log(mensaje); //muestra chau meetup
break;
}
console.log(mensaje) //muestra chau meetup
Usando let
let mensaje = "hola meetup";
while(true){
let mensaje = "chau meetup";
console.log(mensaje); //muestra chau meetup
break;
}
console.log(mensaje) //hola meetup
Nos permite definir constantes. Cuando estamos trabajando con paquetes externos, de seguro no queremos por error modificarlos
const moment = require('moment');
moment.nuevaVariable = 15 // Dara error, no se puede modificar constantes.
Soporte nativo para funciones muy usadas en librerias de terceros (Lodash, Underscore)
array.map()
array.each()
array.filter()
Solo es un cambio de sintaxis opcional, con el beneficio de escribir codigo mas entendible
var saludar = funcion(){
console.log('Hola!')
}
let saludar = ()=>{
console.log('Que tal?')
}
function (){
function (){
function (){
function (){
console.log("Que profundo!");
}
}
}
}
()=>{
()=>{
()=>{
()=>{
console.log("super profundo!")
}
}
}
}
Y hay mas! Promises, Typed Arrays, Generators, Classes, Modules, String templates, ...
Listado de features con comparacion a la version anterior
http://es6-features.org/#Constants
#ES7 Todavia se esta discutiendo sobre los nuevos cambios Algunos posiblemente sean
*SIMD
*Decorators
*Async/await functions