Valores padrĂ£o e Objeto arguments
/**
* Parametros antes da ES2015 (sem valor default)
*/
function exponencialAnterior(array, num) {
// if (!num) {
// num = 1;
// }
const result = [];
console.log('args:', arguments);
console.log('args[0]:', arguments[1]);
for (let i = 0; i < array.length; i++) {
result.push(array[i] ** num);
}
return result;
}
/**
* Parametros depois da ES2015 (com valor default)
*/
function exponencialNovo(array, num = 1) {
const result = [];
console.log('args:', arguments);
console.log('args[0]:', arguments[1]);
for (let i = 0; i < array.length; i++) {
result.push(array[i] ** num);
}
return result;
}
console.log(exponencialAnterior([1, 2, 3, 4]));
console.log(exponencialNovo([1, 2, 3, 4]));
console.log(exponencialAnterior([1, 2, 3, 4], 3));
console.log(exponencialNovo([1, 2, 3, 4], 3));
/**
* Utilizando arguments para passar parametros indefinidos
*/
function findMax() {
let max = -Infinity;
console.log('args:', arguments);
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
console.log(findMax(1, 2, 3, 90, 59, 32, 67, 1234, 455, 766, 9766, 123, 534));
/**
* Spread operator
*/
function sum(x, y, z) {
return x + y + z;
}
function sum2() {
let soma = 0;
for (let i = 0; i < arguments.length; i++) {
soma += arguments[i];
}
return soma;
}
const num1 = [1, 2, 3];
const num2 = [1, 2, 3, 4, 5, 6];
console.log('Soma valores array com spread:', sum(...num1));
console.log('Soma valores array com spread:', sum(...num2));
console.log('Soma valores array com spread:', sum2(...num2));
/**
* Rest operator
*/
function acumula(...args) {
console.log(args.length);
let acumula = args;
for (let i = 0; i < acumula.length; i++) {
console.log(`${i}: ${acumula[i]}`);
}
return acumula;
}
console.log(acumula(1, 2, 3, 4, 5, 6));
/**
* Destructuring
*/
const user = {
id: 42,
displayName: 'jdoe',
fullName: {
firstName: 'John',
lastName: 'Doe',
},
};
function userId({ id }) {
return id;
}
function getFullName({ fullName: { firstName: first, lastName: last } }) {
return `${first} ${last}`;
}
console.log(userId(user));
console.log(getFullName(user));
console.log(user.id);
console.log(user.fullName);