<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ carolina brito - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ carolina brito - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 24 May 2026 19:37:33 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/author/carolina/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Como funciona o operador de ponto de interrogação (?) em JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ O operador de condicional ou de ponto de interrogação, representado por um ?, é um dos recursos mais poderosos do JavaScript. O operador ? é usado em instruções condicionais e, quando acompanhado de um :, pode funcionar como uma alternativa compacta para instruções do tipo if...else. Há, no entanto, mais ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/como-funciona-o-operador-de-ponto-de-interrogacao-em-javascript/</link>
                <guid isPermaLink="false">61f57fb653557304fa19cd4b</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ carolina brito ]]>
                </dc:creator>
                <pubDate>Sat, 26 Feb 2022 00:03:51 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--5--1.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/how-the-question-mark-works-in-javascript/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How the Question Mark (?) Operator Works in JavaScript</a>
      </p><p>O operador de condicional ou de ponto de interrogação, representado por um <code>?</code>, é um dos recursos mais poderosos do JavaScript. O operador <code>?</code> é usado em instruções condicionais e, quando acompanhado de um <code>:</code>, pode funcionar como uma alternativa compacta para instruções do tipo <code>if...else</code>.</p><p>Há, no entanto, mais a se falar sobre ele. Existem três usos principais para o operador <code>?</code>, dois dos quais você pode não ter usado ainda e nem ouvido falar a respeito. Vamos aprender sobre eles agora em detalhes.</p><h2 id="tr-s-usos-principais-para-o-ponto-de-interroga-o-em-javascript-"><strong>Três usos principais para o ponto de interrogação (<code>?</code>) em JavaScript:</strong></h2><ol><li>Operador ternário</li><li>Encadeamento opcional</li><li>Coalescência nula</li></ol><p>Vamos examinar cada um deles em detalhes, começando com a maneira mais comum de se usar o operador <code>?</code> – como um operador ternário.</p><h2 id="1-operador-tern-rio"><strong>1. Operador ternário</strong></h2><p>O termo ternário significa composto de três itens ou partes. O operador <code>?</code> também é chamado de operador ternário pois, diferente dos outros operadores como o de igualdade estrita (<code>===</code>) ou o operador de resto (<code>%</code>), ele é o único que recebe três operandos.</p><p>Começando com <code>?</code>, adicionamos uma condição do lado esquerdo e um valor do lado direito a ser retornado quando a condição for verdadeira. Em seguida, adicionamos dois pontos (<code>:</code>) seguidos de um valor a ser retornado quando a condição é falsa.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--1-.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--1-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--1-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--1-.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--1-.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--1-.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"></figure><p>O operador ternário é, basicamente, um atalho para uma instrução <code>if...else</code> tradicional.</p><p>Vamos comparar o operador ternário com a instrução <code>if...else</code>, mais extensa:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--22-.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--22-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--22-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--22-.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--22-.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--22-.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"></figure><p>Aqui, o operador ternário ocupa apenas uma linha de código, enquanto a instrução <code>if...else</code> tem sete linhas.</p><p>Usar um operador ternário é mais eficaz, certo?</p><h2 id="2-encadeamento-opcional"><strong>2. Encadeamento opcional</strong></h2><p>Em 2020, um novo recurso incrível, conhecido como Encadeamento opcional, foi introduzido no JavaScript.</p><p>Para entender como ele funciona, imagine este cenário.</p><p>Vamos dizer que você tenha um código que chama uma propriedade de objeto que não existe, o que gera um erro em tempo de execução. Isso pode ocorrer devido a um valor ausente ou indefinido em seu banco de dados ou proveniente de uma API:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--23--2.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--23--2" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--23--2.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--23--2.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--23--2.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--23--2.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"></figure><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Screenshot-2021-01-25-00-56-06.png" class="kg-image" alt="Screenshot-2021-01-25-00-56-06" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Screenshot-2021-01-25-00-56-06.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Screenshot-2021-01-25-00-56-06.png 887w" width="887" height="164" loading="lazy"><figcaption>Um erro comum – <code>TypeError: Cannot read property ‘salary’ of undefined</code></figcaption></figure><p>Graças ao Encadeamento opcional, você pode simplesmente inserir um <code>?</code> entre o nome da propriedade e o ponto antes da próxima propriedade.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--24-.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--24-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--24-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--24-.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--24-.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--24-.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"></figure><p>Com isso, o retorno será <code>undefined</code> em vez de lançar um erro.</p><p>O encadeamento opcional é um recurso que muda o jogo de verdade para os desenvolvedores de JavaScript.</p><h2 id="3-coalesc-ncia-nula"><strong>3. Coalescência nula</strong></h2><p>Em alguns casos, é preciso definir um valor padrão para um nome de propriedade ou valor ausente.</p><p>Por exemplo, vamos dizer que estamos criando um app de previsão do tempo, no qual estamos buscando a temperatura, umidade do ar, velocidade do vento, pressão atmosférica, hora do nascer e do por do sol, além de uma imagem da cidade. Inserimos um lugar, por exemplo, <em><em>Bangalore</em></em>, mas, por algum motivo, a imagem da cidade não está no banco de dados.</p><p>Quando o app busca e exibe os dados, a imagem estará em branco, o que pode ficar feio na interface. O que podemos fazer, nesse caso, é definir uma imagem padrão para aquelas cidades que não têm uma imagem – em nosso exemplo, Bangalore.</p><p>Desse modo, quando o app exibir os dados, a imagem padrão estará lá para as cidades que não tiverem imagens.</p><p>Podemos fazer isso usando o operador <code>||</code>, conhecido como o operador lógico OR:</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--4-.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--4-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--4-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--4-.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--4-.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--4-.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"></figure><p>Porém, se você usar <code>||</code> para fornecer um valor padrão, poderá encontrar comportamentos inesperados se você considerar alguns valores como utilizáveis (por exemplo, <code>''</code> ou <code>0</code>).</p><p>Considere um cenário onde uma variável tem o valor de 0 ou de uma string vazia. Se usarmos (<code>||</code>), ela será considerada como <em>undefined</em> ou <em>NULL</em> e retornará o valor padrão que estabelecemos.</p><p>Em vez do operador lógico OR (<code>||</code>), você pode usar dois pontos de interrogação (<code>??</code>), também conhecidos como Coalescência nula.</p><p>Vamos aprender com um exemplo.</p><figure class="kg-card kg-code-card"><pre><code class="language-javascript">const value1 = 0 || 'default string';
console.log(value1);


const value2 = '' || 1000;
console.log(value2);</code></pre><figcaption>Com o operador lógico OR (<code>||</code>)</figcaption></figure><p>Aqui, temos '0' e 'default string' na variável value1. Se retornarmos seu valor no console, teremos o valor 'default string', o que é estranho. Em vez de 'default string', deveríamos receber 0, já que zero não é <em>undefined</em> nem <em>null</em>. Assim, '<code>||</code>' não faz o que queremos que faça aqui.</p><p>É o mesmo que ocorre, nesse caso, com value2.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--25-.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--25-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--25-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--25-.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--25-.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--25-.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"><figcaption>Resultado para '<code>||</code>'</figcaption></figure><figure class="kg-card kg-code-card"><pre><code class="language-javascript">const value1 = 0 ?? 'default string';
console.log(value1);


const value2 = '' ?? 1000;
console.log(value2);</code></pre><figcaption>Com Coalescência nula</figcaption></figure><p>Porém, se substituirmos '<code>||</code>' por '<code>??</code>', obteremos 0 e uma string vazia, o que torna o recurso bem interessante.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--26-.png" class="kg-image" alt="Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--26-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--26-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--26-.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1600/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--26-.png 1600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/Pink-Cute-Chic-Vintage-90s-Virtual-Trivia-Quiz-Presentations--26-.png 1920w" sizes="(min-width: 1200px) 1200px" width="1920" height="1080" loading="lazy"><figcaption>Resultado para '<code>??</code>'</figcaption></figure><p>A coalescência nula funciona exatamente como o operador lógico OR, exceto pelo fato de que você obtém o valor do lado direito quando o valor do lado esquerdo é <code>undefined</code> ou <code>null</code>.</p><p>Em outras palavras, <code>??</code> somente permite valores <code>undefined</code> e <code>null</code>, não permitindo strings vazias (<code>''</code>) ou <code>0</code>s.</p><h2 id="conclus-o"><strong>Conclusão</strong></h2><p>Espero que agora você compreenda como funciona o operador <code>?</code> em JavaScript. Parece simples, mas é um dos caracteres mais poderosos da linguagem. Ele fornece aquele "a mais" sintático de três maneiras diferentes, porém incríveis.</p><p>Experimente-as e conte-nos o resultado.</p><p>Feliz aprendizagem!</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Funções de callback em JavaScript –  o que são e como usá-las ]]>
                </title>
                <description>
                    <![CDATA[ Se você já estiver familiarizado com programação, sabe o que fazem as funções e como usá-las. Mas o que é uma função de callback? Funções de callback são uma parte importante do JavaScript e, ao entender como callbacks funcionam, você vai se tornar muito melhor em JavaScript. Então, neste artigo, ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/funcoes-de-callback-em-javascript-o-que-sao-e-como-usa-las/</link>
                <guid isPermaLink="false">61e9f897b5028e04fdf66699</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ carolina brito ]]>
                </dc:creator>
                <pubDate>Mon, 07 Feb 2022 18:12:04 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/01/caspar-camille-rubin-7SDoly3FV_0-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/javascript-callback-functions-what-are-callbacks-in-js-and-how-to-use-them/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">JavaScript Callback Functions – What are Callbacks in JS and How to Use&nbsp;Them</a>
      </p><p>Se você já estiver familiarizado com programação, sabe o que fazem as funções e como usá-las. Mas o que é uma função de callback? Funções de callback são uma parte importante do JavaScript e, ao entender como callbacks funcionam, você vai se tornar muito melhor em JavaScript.</p><p>Então, neste artigo, eu gostaria de ajudar você a entender o que são as funções de callback e como usá-las em JavaScript, passando por alguns exemplos.</p><h2 id="o-que-uma-fun-o-de-callback"><strong>O que é uma função de callback?</strong></h2><p>Em JavaScript, funções são objetos. Podemos passar objetos para funções como parâmetros? Sim.</p><p>Então, nós podemos também passar funções como parâmetros para outras funções e chamá-las dentro das funções externas. Parece complicado? Vamos ver isso no exemplo abaixo:</p><pre><code class="language-javascript">function print(callback) {  
    callback();
}</code></pre><p>A função print( ) recebe outra função como parâmetro e a chama dentro de si. Isso é válido no JavaScript e nós chamamos de "callback". Então, a função que é passada para outra função como um parâmetro é uma função de callback. Mas isso não é tudo.</p><p><strong>Você também pode ver a versão em vídeo sobre as funções de callback abaixo:</strong></p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.17977528089888%;" class="fluid-width-video-wrapper">
            <iframe width="356" height="200" src="https://www.youtube.com/embed/qtfi4-8dj9c?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" name="fitvid0"></iframe>
          </div>
        </div>
      </figure><h3 id="por-que-precisamos-de-fun-es-de-callback"><strong>Por que precisamos de funções de callback?</strong></h3><p>O JavaScript executa o código sequencialmente em uma ordem de cima para baixo. No entanto, existem alguns casos em que o código é executado (ou deve ser executado) depois que algo acontece e de modo não sequencial. Isso é chamado de programação assíncrona. </p><p>Callbacks garantem que uma função não seja executada antes que uma tarefa seja concluída, mas logo depois dessa tarefa ser concluída. Elas nos ajudam a desenvolver código JavaScript assíncrono e evitam que tenhamos problemas e erros.</p><p>Em JavaScript, o jeito de criar uma função de callback é passá-la como um parâmetro para outra função, chamando-a novamente em seguida, logo depois que algo aconteça ou que alguma tarefa seja concluída. Vamos ver como...</p><h2 id="como-criar-uma-fun-o-de-callback"><strong>Como criar uma função de callback</strong></h2><p>Para entender o que eu expliquei acima, deixe-me começar com um simples exemplo. Nós queremos registrar uma mensagem no console mas ela deve aparecer lá após 3 segundos.</p><pre><code class="language-javascript">const mensagem = function() {  
    console.log("Essa mensagem é exibida depois de 3 segundos");
}
 
setTimeout(mensagem, 3000);</code></pre><p>Existe um método integrado no JavaScript, chamado "setTimeout", o qual chama uma função ou avalia uma expressão depois de um certo tempo (em milissegundos). Então, aqui, a função "mensagem" está sendo chamada após 3 segundos. ( 1 segundo = 1000 milissegundos)</p><p>Em outras palavras, a função mensagem está sendo chamada depois de algo acontecer (após 3 segundos se passarem para esse exemplo), mas não antes. Então a função mensagem é um exemplo de função de callback.</p><h3 id="o-que-uma-fun-o-an-nima"><strong>O que é uma função anônima?</strong></h3><p>Como alternativa, podemos definir uma função diretamente dentro de outra função, ao invés de chamá-la. Vai ser parecido com isso:</p><pre><code class="language-javascript">setTimeout(function() {  
    console.log("Essa mensagem é exibida após 3 segundos");
}, 3000);</code></pre><p>Como podemos ver, a função de callback aqui não tem nome e uma função sem nome em JavaScript é chamada de "função anônima". Isso faz exatamente a mesma tarefa que o exemplo acima.</p><h3 id="callbacks-como-arrow-functions"><strong>Callbacks como arrow functions</strong></h3><p>Se você preferir, você pode também escrever a mesma função de callback como uma arrow function do ES6, que é um tipo mais novo de função em JavaScript:</p><pre><code class="language-javascript">setTimeout(() =&gt; { 
    console.log("Essa mensagem é exibida após 3 segundos");
}, 3000);</code></pre><h2 id="e-os-eventos"><strong>E os eventos?</strong></h2><p>JavaScript é uma linguagem de programação orientada a eventos. Nós também usamos funções de callback para declarações de eventos. Por exemplo, digamos que queremos que os usuários cliquem em um botão:</p><pre><code class="language-html">&lt;button id="callback-btn"&gt;Clique aqui&lt;/button&gt;</code></pre><p>Desta vez, veremos uma mensagem no console somente quando o usuário clicar no botão:</p><pre><code class="language-javascript">document.queryselector("#callback-btn")
    .addEventListener("click", function() {    
      console.log("O usuário clicou no botão!");
});</code></pre><p>Então, aqui, nós primeiro selecionamos o botão pelo seu id. Em seguida, adicionamos um event listener (algo como um 'detector de eventos', em português) com o método addEventListener. Ele recebe dois parâmetros. O primeiro é o seu tipo, "click", e o segundo parâmetro é uma função de callback. Essa função insere a mensagem no console quando o botão é clicado.</p><p>Como você pode ver, funções de callback são também usadas para declaração de eventos em JavaScript.</p><h2 id="conclus-o">Conclusão</h2><p>Callbacks são usadas com frequência em JavaScript, e eu espero que este artigo ajude você a entender o que elas realmente fazem e como trabalhar com elas mais facilmente. Você também pode aprender sobre <a href="https://www.freecodecamp.org/news/javascript-es6-promises-for-beginners-resolve-reject-and-chaining-explained/">promises em JavaScript</a> (em inglês), um tópico semelhante ao explicado aqui, em um outro artigo do autor.</p><p><strong>Se você quiser aprender mais sobre desenvolvimento para a web, convido você a <a href="https://www.youtube.com/channel/UC1EgYPCvKCXFn8HlpoJwY3Q">seguir o autor no YouTube</a>!</strong></p><p>Obrigado por ler!</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
