Que funções existem em JavaScript?
sobes.tech IA
Resposta da IA
No JavaScript, existem os seguintes tipos de funções:
-
Declarações de funções (Function Declarations): Sintaxe básica para definir uma função. São elevadas (hoisted) durante a compilação.
function sayHello() { // Corpo da função console.log("Olá!"); } -
Expressões de funções (Function Expressions): Uma função é atribuída a uma variável. Não são elevadas. Podem ser nomeadas ou anónimas.
const greetUser = function(name) { // Corpo da função console.log(`Olá, ${name}!`); }; -
Funções arrow (Arrow Functions): Sintaxe mais concisa introduzida no ES6. Têm comportamentos específicos com
this.const add = (a, b) => a + b; -
Métodos de objetos (Object Methods): Funções definidas como propriedades de um objeto.
const user = { name: "Ivan", sayName: function() { console.log(this.name); } }; -
Funções geradoras (Generator Functions): Funções que podem pausar e retomar a sua execução usando
yield. Retornam um iterador.function* counter() { let i = 0; while (true) { yield i++; } } -
Funções assíncronas (Async Functions): Funções que trabalham com promessas e permitem usar
awaitpara aguardar a resolução de promessas.async function fetchData() { const response = await fetch("https://api.example.com/data"); const data = await response.json(); return data; } -
Funções construtoras (Constructor Functions): Funções usadas com o operador
newpara criar objetos. Abordagem tradicional de POO antes do surgimento das classes.function Person(name, age) { this.name = name; this.age = age; } const person1 = new Person("Petr", 30); -
Funções de callback (Callback Functions): Funções passadas como argumentos para outra função para serem executadas em um momento específico.
function processArray(arr, callback) { for (let i = 0; i < arr.length; i++) { callback(arr[i]); } } processArray([1, 2, 3], function(item) { console.log(item * 2); }); -
Expressões de funções imediatamente invocadas (IIFE - Immediately Invoked Function Expressions): Funções que são executadas imediatamente após a sua definição. Usadas para criar um escopo local.
(function() { // Código local const secret = "segredo"; console.log(secret); })();
Cada tipo de função tem as suas próprias características de sintaxe, escopo (this) e cenários de uso.