freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-an.../object-oriented-programming/understand-the-immediately-...

1.7 KiB

id title challengeType forumTopicId dashedName
587d7db2367417b2b2512b8b Entender a expressão de função invocada imediatamente (IIFE) 1 301328 understand-the-immediately-invoked-function-expression-iife

--description--

Um padrão comum em JavaScript é executar a função assim que ela é declarada:

(function () {
  console.log("Chirp, chirp!");
})();

Essa é uma expressão de função anônima que executa logo após ser declarada, e exibe imediatamente no console Chirp, chirp!.

Note que a função não possui nome e não é armazenada em uma variável. Os dois parênteses () ao final da expressão da função faz com que ela seja imediatamente executada ou invocada. Este padrão é conhecido como immediately invoked function expression (expressão de função invocada imediatamente) ou IIFE.

--instructions--

Rescreva a função makeNest e remova a chamada a ela para que no lugar seja uma expressão de função imediatamente invocada (IIFE) anônima.

--hints--

A função deve ser anônima.

assert(/\((function|\(\))(=>|\(\)){?/.test(code.replace(/\s/g, '')));

Sua função deve ter parênteses no final da expressão para chamar ela imediatamente.

assert(/\(.*(\)\(|\}\(\))\)/.test(code.replace(/[\s;]/g, '')));

--seed--

--seed-contents--

function makeNest() {
  console.log("A cozy nest is ready");
}

makeNest();

--solutions--

(function () {
  console.log("A cozy nest is ready");
})();

(function () {
  console.log("A cozy nest is ready");
}());

(() => {
  console.log("A cozy nest is ready");
})();

(() =>
  console.log("A cozy nest is ready")
)();