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);