Functions
Declaração
function myFunction() {
console.log("Hello World!")
}
Funções anônimas
let nome = (nome) => nome
let nome = (nome) => {
return nome
}
args
function myFunction(...args) {
console.log(...args)
}
myFunction('teste')
Closure
function minhaBiblioteca() {
return {
add5() {
return 10 + 5;
},
add7() {
return 10 + 7;
}
}
}
const meuNumero = minhaBiblioteca();
console.log(meuNumero.add5());
console.log(meuNumero.add7());
Currying
Currying é o processo de transformar uma função que espera vários argumentos em uma função que espera um único argumento e retorna outra função curried.
// const add = num1 => num2 => num1 + num2 (forma simplificada)
const add = (num1) => {
return (num2) => {
return num1 + num2
}
}
console.log(add(5)(5))
Com curried function
// const darDesconto = desconto => preco => preco * desconto (forma simplificada)
const darDesconto = (desconto) => {
return (preco) => {
return preco * desconto
}
}
const darDezPorcentoDesnto = darDesconto(.10)
console.log(darDezPorcentoDesnto(50));
Higher Order Functions
function dobro(numero) {
return numero * 2
}
function triplo(numero) {
return numero * 3
}
function quadruplo(numero) {
return numero * 4
}
console.log(dobro(9))
Utilizando higher order function
function multiplicador(multiplicador) {
return function(numero) {
return numero * multiplicador
}
}
const dobro = multiplicador(2)
const triplo = multiplicador(3)
const quadruplo = multiplicador(4)
console.log(dobro(3))
Arrow Functions
Antes
const myFunction = function () {
return 'hello world!';
}
Com arrow function
const myFunction = () => {
return 'hello world!';
}
// ou
const myFunction = () => 'hello world!'
Spread Operator
const arr = [1, 2, 3]
const newArr = [...arr, 4]
console.log(newArr); // [ 1, 2, 3, 4 ]
Last updated
Was this helpful?