function newFunction(name, age, country){
var name = name || 'Pablo';
var age = age || 27;
var country = country || 'Ecuador';
console.log(name, age, country);
}
//es6 Ahora se pueden establecer valores por defecto desde la declaración
// de los parametros.
function newFunction2(name = 'pablo', age = 27, country = 'ecuador'){
console.log(name, age, country);
}
newFunction2(); //Salida> pablo 27 ecuador
newFunction2('Dayana','26','EC'); //Salida> Dayana 26 EC
let hello = 'hello';
let world = 'world';
let phrase = hello + ' ' + world;
console.log(phrase);
//es6 Se usan template Literals para concatenar strings
let phrase2 = `${hello} ${world}`;
console.log(phrase2);
// La salida es la misma en los dos casos
let lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eget ornare risus, a gravida erat. \\n"
+ "a consectetur sem metus sit amet nulla."
//es6 Se usan template literals para tener multilinea sin la necesidad de cerrarlos
let lorem2 = `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eget ornare risus, a gravida erat.
a consectetur sem metus sit amet nulla. `;
console.log(lorem);
console.log(lorem2);
// La salida es la misma en los dos casos
let person = {
'name': 'Pablo',
'age': 27,
'country': 'EC'
}
console.log(person.name, person.age, person.country);
//es6 Se usa esta estructura para poder acceder a los datos de forma mas directa.
let {name, age, country} = person;
console.log(name, age,country);
// La salida de los dos es la misma
let team1 =['Oscar','Julian','Ricardo'];
let team2 = ['Dayana','Viviana','Jenifer'];
//es6 El operador de propagación ... nos permite detro de education traer los elementos
// de team1 y team2, y unirlos
let education = ['David', ...team1, ...team2];
console.log(education);
//salida> [ 'David', 'Oscar', 'Julian', 'Ricardo', 'Dayana', 'Viviana', 'Jenifer' ]
let name = 'Pablo';
let age = 27;
obj = {name: name, age: age}
//es6 Ahora en la asignacion toma directamente la llave y el valor de las variables.
obj2 = {name, age}
console.log(obj);
console.log(obj2);
// La salida es la misma en los dos casos
Estas funciones vienen a trabajar con dos elementos , una sintaxis mas reducida y un this
no vinculable. Las arrow function son funciones anónimas
const names = [
{name: 'Pablo', age: 27},
{name : 'David', age: 28}
]
let listOfNames = names.map(function(item){
console.log(item.name);
})
//es6 Las arrow function permiten un código mas flexible y estético
let listOfNames2 = names.maps(item => console.log(item.name))
const listOfNames3 = (name, age, country) => {
...
}
const listOfNames4 = name => {
...
}
const square = num => num * num;
Las promesas son con las que se trabaja el asincronismo, vienen a solucionar el callback hail, la promesa es que en cierto tiempo es que algo va a pasar en cierto tiempo.
const helloPromise = () => {
return new Promise((resolve, reject)=> {
if (true) {
resolve('Hey!')
} else {
reject('Ups!')
}
});
}
helloPromise()
.then(response => console.log(response))
.then(() => console.log('hola'))
.catch(error => console.log(error));
// salida>
// Hey!
// hola