Funções

Uma função é um bloco de código JavaScript que é definido uma vez, mas que pode ser executado ou invocado qualquer número de vezes. As funções JavaScript são parametrizadas: uma definição de função pode incluir uma lista de parâmetros, que funcionam como variáveis locais para o corpo da função. A maneira mais direta de definir uma função JavaScript é com a palavra-chave function, que pode ser usada como uma declaração ou como uma expressão.

function funcaoX(parametro1, parametro2) {
    // Definindo uma função por meio de declaração
    console.log(`Parâmetros: ${parametro1} e ${parametro2}`);
}

const funcaoY = function(parametro) {
    // Definindo uma função por meio da expressão 'function'
    return `Parâmetro: ${parametro}`;
};

As invocações de função fornecem valores, ou argumentos, para os parâmetros da função. As funções geralmente usam seus valores de argumento para calcular um valor de retorno que se torna o valor da expressão de invocação de função. Esse retorno é feito por meio da palavra-chave return.

funcaoX('linguagens de scripts para web', 'segundo período');
let texto = funcaoY('linguagens de scripts para web');

Se uma função é atribuída a uma propriedade de um objeto, ela é conhecida como um método desse objeto. Quando uma função é invocada em ou por meio de um objeto, esse objeto é o contexto de invocação ou este valor para a função.

const objeto = {
  nome: "Diogo",
  sobrenome: "Moreira",
  getNome: function () {
    return `${this.nome} ${this.sobrenome}`;
  }
};

console.log(objeto.getNome());

As definições de função JavaScript podem ser aninhadas em outras funções e têm acesso a quaisquer variáveis que estejam no escopo onde foram definidas. Isso significa que as funções JavaScript são closures e habilitam técnicas de programação importantes e poderosas.

Closure é a forma de fazer com que as variáveis dentro de uma função sejam privadas e persistentes.

Arrow Functions

Nas versões mais modernas de Javascript, você pode definir funções usando uma sintaxe particularmente compacta conhecida como "arrow functions".

A palavra-chave function não é usada e, como as arrow function são expressões em vez de instruções, também não há necessidade de um nome de função. A forma geral de uma arrow function é uma lista separada por vírgulas de parâmetros entre parênteses, seguida pela seta =>, seguida pelo corpo da função entre chaves .

Caso a expressão não tenha mais do que uma linha, podemos omitir as chaves e a palavra return.

Caso a arrow function tenha apenas um parâmetro, os parênteses podem ser omitidos também.

Porém, caso a arrow function não tenha nenhum parâmetro, os parênteses devem se fazer presentes.

Além disso, se o corpo de sua arrow function é uma única instrução de retorno, mas a expressão a ser retornada é um objeto literal, então você tem que colocar o objeto literal entre parênteses para evitar ambigüidade sintática entre as chaves do corpo de uma função e as chaves de um literal de objeto.

Parâmetros rest

Nas versões mais recentes do Javascript, temos a sintaxe de Parâmetros Rest (rest parameter), que nos permite representar um número indefinido de argumentos como um array. Se o último argumento nomeado de uma função tiver prefixo com ..., ele irá se tornar um array em que os elemento são os argumentos passados à função.

Parâmetros predefinidos

Os parâmetros predefinidos de uma função permitem que parâmetros regulares sejam inicializados com valores iniciais caso undefined ou nenhum valor seja passado.

Last updated

Was this helpful?