Ya hablamos acerca de io.js, el futuro de Javascript del lado del servidor pero ahora quiero resaltar algunos de los detalles técnicos más importantes, mencionados por Julian Duque aquí en Platzi, y como preámbulo al curso gratuito en el que puedes registrarte desde ya.
Primero hay que detallar la intención de estabilidad y retrocompatibilidad con Node.js, ¿a qué nos referimos con eso?
Con estable nos referimos a cambios pequeños que no afecten de fondo el funcionamiento correcto de io.js; y con respecto a retrocompatibilidad, nos referimos a que se desarrolla io.js de tal forma que no interfiera con otros desarrollos hechos en node.js. Esto permite que, por ejemplo, sea fácil migrar de node.js a io.js.
Una de las nuevas características que diferencia a io.js de node.js es la actualización del motor V8 de Chrome, el cual dota a io.js con las nuevas capacidades del nuevo estándar de Javascrip ECMA Script 6:
cons hace referencia a un dato que no cambia por más que se intente modificar:
cons number = 10;
console.log(number);
> 10
number = 11;
console.log(number);
> 10
let es una forma de declarar variables para controlar mejor su propagación en un contexto específico.
En el método clásico var sucede lo siguiente:
var a = 1
// nuevo contexto
{
var b = 2
}
console.log(a,b);
> 1 2
Usando let, podemos ver un control mejor de las variables:
let a = 1
// nuevo contexto
{
let b = 2
}
console.log(a,b);
> b is not defined
Permite concatenar de forma más elegante. De la forma clásica es, como si fuera una suma de elementos, en este caso dos strings:
var name = "DiegoUG"
console.log("mi nombre es: " + name)
La forma de template strings es más elegante, se trata de una asignación de una variable:
const name = "DiegoUG"
console.log(`mi nombre es: ${name}`)
Nótese que para usar los template string toca colocar la salida del string con `.
Esto es una alternativa al manejo de callbacks múltiples y es bueno para tener un código más organizado
let p = new Promise(function(resolve, reject){
setTimeout(function(){
resolve("esto es una promesa");
}, 2000)
})
p.then( function(data){
console.log(data);
});
// despues de dos segundos
> esto es una promesa
Un generador nos permite trabajar con una función que en cada llamada puede mantener sus valores actuales, los cuales puede cambiar y entre llamadas:
function* generateId(){
let index 0;
while(true){
yield index++
}
}
let id = generateId().next().value
console.log(id);
//En la primera llamada:
> 1
// En la siguiente:
> 2
//y así sucesivamente.
Un generador se identifica por su asterisco despues de escribir function “function*”.
Aquí lo que sucede es que “yield” se encarga de retornar un valor y de frenar la ejecución, imaginen que el while no es infinito y medimos cuando index es menor a 5:
…..
let index 0;
while(index < 5){
yield index++
}
…..
Entonces cuando lo llamas la quinta vez lo que sucede es lo siguiente:
> generateId().next()
{ value: 4, done: false }
> generateId().next()
{ value: undefined, done: true }
Esto es apenas una pequeña muestra de lo que esperamos aprender en el curso gratuito que empieza mañana, aquí podrán aprender cómo aprovechar al máximo esta novedosa herramienta y así poder hacer aplicaciones geniales.
He estado hablando con Julián y es impresionante todo lo que podemos aprender de él, junto con ustedes estaré presente en primera fila, espero disfruten lo que él tiene para enseñarnos.