Default Params
// Default Params
function newFunction (name, age, country) {
var name = name || 'adrian'
var age = age || 26
var country = country || 'México'
console.log(name, age, country)
}
//es6 default params
function newFunction2 (name="adrian", age = 26, country = 'MX') {
console.log(name, age, country)
}
newFunction2()
newFunction2('Adrian', '26', 'JP')
// all the params sended taken in a single var
function howMany(...args) {
return "You have passed " + args.length + " arguments.";
}
console.log(howMany(0, 1, 2));
console.log(howMany("string", null, [1, 2, 3], { }));
Template Literals
//templates
let hello = "Hello"
let world = "World"
let epicPhrase = hello + ' ' + world
console.log(epicPhrase)
//es6 template-literals
let epixPhrase2 = `${hello} ${world}`
console.log(epixPhrase2)
//concatenar
let lorem = "Lorem ipsum dolor sit amet consectetur. \\n"
+ "otro pedazo de la frase \\n"
+ "y otra más."
console.log(lorem)
//es6 concatenacion
let lorem2 = `otra fase epica que no termina en la primera linea
sino que tiene dos
o mas lineas.`
console.log(lorem2)
Destructuring assignment
//Object
let person = {
'name': 'Adrian',
'age': '26',
'country': 'MX'
}
//desctructuracion de elementos
console.log(person.name, person.age, person.country)
//es6 desctructuracion de elementos
let { name, age, country } = person
console.log(name, age, country)
//desctructuracion cambiando el nombre de la variable
let { name: myname, age: myage, country: mycountry } = person
console.log(myname, myage, mycountry)
//destructuracion de objetos anidados
const user = {
johnDoe: {
age: 34,
email: 'johnDoe@freeCodeCamp.com'
}
};
const { johnDoe: { age, email }} = user;
console.log(age, email)
console.log(johnDoe) // error
// array deestructuring
const [a, b,,, c] = [1, 2, 3, 4, 5, 6];
console.log(a, b, c);
Spread Operator
//Arrays
let team1 = ['Adrian', 'David', 'Adilene']
let team2 = ['Nefteradi', 'Valentina', 'Ramona']
//Spread Operator
let educationold = ['Jacobo', 'Adrian', 'David', 'Adilene', 'Nefteradi', 'Valentina', 'Ramona']
//es6 Spread Operator
let education = ['Jacobo', ...team1, ...team2]
console.log(education)
Scope Variables
//vars for short using
// scope variables
{
var globalVar = "Global Var"
}
//es6 let: solo esta disponible en el scope
{
let globalLet = "Global Let"
console.log(globalLet) //solo aqui es accesible
}
console.log(globalVar)
//console.log(globalLet) //aqui no funciona
Only Read Variables
//nos permite mantener el valor de las constantes
const a = 'b'; //constantes que no cambian
a = 'a'
console.log(a)
Object Syntax
//Ojects
let name = 'Adrian'
let age = 26
//es5
obj = { name: name, age: age }
//es6 objetos mejorados
obj2 = { name, age }
console.log(obj2)
console.log(obj)
Arrow Function
//Arrow functions
const names = [
{name: 'Adrian', age: 26},
{name: 'Nefteradi', age: 27}
]
//es5 function anonima
let listOfNames = names.map(function (item) {
console.log(item.name)
})
//es6 function anonima
let listOfNames2 = names.map(item => console.log(item.name))
//or
const listOfNames3 = (name, age, country) => {
...
}
//or
const listOfNames4 = name => {
...
}
//or
const listOfNames5 = name => console.log(name)
Promises
//promises: algo va a pasar, cuando suceda has esto
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))