<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tássio Medeiros</title>
    <description>The latest articles on DEV Community by Tássio Medeiros (@tassiomed).</description>
    <link>https://dev.to/tassiomed</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1294731%2F10b8b8c7-43cc-476d-9699-37e301bdb36f.jpeg</url>
      <title>DEV Community: Tássio Medeiros</title>
      <link>https://dev.to/tassiomed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tassiomed"/>
    <language>en</language>
    <item>
      <title>10 Dicas para Pesquisar no Google como um Desenvolvedor Profissional</title>
      <dc:creator>Tássio Medeiros</dc:creator>
      <pubDate>Fri, 02 Aug 2024 01:03:11 +0000</pubDate>
      <link>https://dev.to/tassiomed/10-dicas-para-pesquisar-no-google-como-um-desenvolvedor-profissional-2c7a</link>
      <guid>https://dev.to/tassiomed/10-dicas-para-pesquisar-no-google-como-um-desenvolvedor-profissional-2c7a</guid>
      <description>&lt;p&gt;O Google &lt;a href="https://www.statista.com/statistics/216573/worldwide-market-share-of-search-engines/" rel="noopener noreferrer"&gt;domina mais de 90% das pesquisas na web globalmente&lt;/a&gt; e &lt;a href="https://www.internetlivestats.com/google-search-statistics/" rel="noopener noreferrer"&gt;processa mais de 3,5 bilhões de consultas diariamente&lt;/a&gt;. No entanto, poucos sabem como pesquisar de maneira eficaz para obter resultados precisos. Para desenvolvedores, em particular, o Google é uma ferramenta indispensável, pois não conseguimos memorizar todas as sintaxes e algoritmos como máquinas. Portanto, é crucial, especialmente para profissionais de TI, saber como utilizar o Google de forma eficiente. Abaixo estão algumas dicas e atalhos que podem ajudar a obter respostas mais precisas.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Use Aspas
&lt;/h2&gt;

&lt;p&gt;Uma forma de filtrar e receber resultados de forma mais certeira é usar as aspas. Isso é especialmente útil para pesquisar erros específicos no Google. Por exemplo, se você busca por uma mensagem de erro exata, colocar a frase entre aspas garante que o Google procure exatamente aquele texto.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqikq6nr5l0dirsg9j0b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqikq6nr5l0dirsg9j0b6.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Use Asteriscos
&lt;/h2&gt;

&lt;p&gt;Os asteriscos funcionam como curingas e podem substituir palavras desconhecidas em uma frase. Isso é muito útil para desenvolvedores ao lidar com erros genéricos. Por exemplo, ao pesquisar por "TypeError: Cannot read property '*' of undefined", você encontrará todas as ocorrências desse tipo de erro, independentemente do nome da propriedade desconhecida.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F231s4fhle0x4qxdwb69v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F231s4fhle0x4qxdwb69v.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Use o Hífen
&lt;/h2&gt;

&lt;p&gt;Para eliminar assuntos indesejados e tornar a pesquisa mais clara, utilize o hífen. Isso é útil quando você deseja excluir resultados que contenham determinados termos. Por exemplo, "javascript desestruturação -array" irá excluir resultados relacionados ao Angular.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgn8w8d95kq12h1cdcj62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgn8w8d95kq12h1cdcj62.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Tipo de Arquivo
&lt;/h2&gt;

&lt;p&gt;Esse atalho é útil quando precisamos de um arquivo específico, como um PDF. Basta usar "filetype:[formato de arquivo]" seguido do nome do arquivo. Por exemplo, "filetype&lt;/p&gt;

&lt;p&gt;“What Developers Search For and What They Find" irá buscar os documento  especificado em PDF.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1qvhhk87ba36kmu4bti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft1qvhhk87ba36kmu4bti.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Use After/Before
&lt;/h2&gt;

&lt;p&gt;Os operadores "after" e "before" são ótimos para filtrar resultados por data. Use "after:[data]" para encontrar resultados publicados depois de uma data específica e "before:[data]" para resultados anteriores à data especificada. Por exemplo, "react router before:2020" mostrará tudo sobre React Router antes de 2020.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqt2p0qr0swwrvx3ijj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqt2p0qr0swwrvx3ijj3.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No exemplo abaixo, "react router after:2020" mostrará frameworks lançados após 2020.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femy95qpf4ibxke3bq3gf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Femy95qpf4ibxke3bq3gf.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Use Define
&lt;/h2&gt;

&lt;p&gt;Para obter rapidamente a definição de um termo, use "define:". Isso é útil para termos técnicos que você não conhece. Por exemplo, "define" mostrará a definição de API diretamente nos resultados da pesquisa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fco6m4872tfpfitbrxoyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fco6m4872tfpfitbrxoyy.png" alt="Image description" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Série de Números
&lt;/h2&gt;

&lt;p&gt;Para pesquisar algo relacionado a datas ou intervalos de números, use "..". Por exemplo, "react versions 2017..2023" mostrará resultados sobre versões do React lançadas entre 2017 e 2023. Isso é muito útil para quem trabalha com estatísticas e finanças.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvee62ucfo0zg90rootiy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvee62ucfo0zg90rootiy.png" alt="Image description" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Pesquise em um Site Específico
&lt;/h2&gt;

&lt;p&gt;Para encontrar informações dentro de um site específico, use "site:[url]". Por exemplo, "site.org API reference" buscará referências de API no site do Next.js. Isso é útil quando você lembra vagamente onde leu algo, mas não o local exato.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0boegtc6ma8dk92q297.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff0boegtc6ma8dk92q297.png" alt="Image description" width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Operadores OR e AND
&lt;/h2&gt;

&lt;p&gt;Os operadores OR e AND ajudam a filtrar resultados relacionados a múltiplos termos. O OR (ou |) busca resultados que contenham pelo menos um dos termos, enquanto o AND busca resultados que contenham ambos. Por exemplo, "javascript | typescript" encontrará resultados que mencionem um dos dois.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1x3wo5pmax0o4hvnqbq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1x3wo5pmax0o4hvnqbq.png" alt="Image description" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No exemplo abaico com o uso do AND em "javascript AND typescript" encontrará resultados que mencionem ambos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibb51o07ghuoctc19gci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibb51o07ghuoctc19gci.png" alt="Image description" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Use o Google como Calculadora
&lt;/h2&gt;

&lt;p&gt;Você pode usar a barra de pesquisa do Google como uma calculadora. Basta digitar o cálculo que você precisa e o Google irá resolver para você. Por exemplo, "5*7/2” mostrará o resultado diretamente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwarl09mky0213275k87c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwarl09mky0213275k87c.png" alt="Image description" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Artigos Recomendados
&lt;/h2&gt;

&lt;p&gt;Abaixo estão alguns artigos que estudei para poder escrever este artigo, neles há mais exemplos de atalhos de pesquisa que poderão te ajudar a aprimorar suas habilidades de pesquisa no Google. Boa sorte e ótimos estudos! 🚀&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.lifehack.org/articles/technology/20-tips-use-google-search-efficiently.html" rel="noopener noreferrer"&gt;&lt;strong&gt;20 Google Search Tips to Google Like a Pro&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/arctouch/how-to-google-it-like-a-senior-software-engineer-4bd467a95a05" rel="noopener noreferrer"&gt;&lt;strong&gt;How to Google It Like a Senior Software Engineer&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/how-to-search-google-like-a-pro/" rel="noopener noreferrer"&gt;&lt;strong&gt;How to Search Google Like a Pro&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Você já conhecia algum dos atalhos acima? Conhece algum que não está no artigo? Compartilhe comigo suas ideias! Feedbacks são sempre bem-vindos. Até mais, coders! 👨‍💻👩‍💻&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>google</category>
      <category>developer</category>
    </item>
    <item>
      <title>Desestruturação com Javascript</title>
      <dc:creator>Tássio Medeiros</dc:creator>
      <pubDate>Thu, 06 Jun 2024 23:38:09 +0000</pubDate>
      <link>https://dev.to/tassiomed/desestruturacao-com-javascript-4nij</link>
      <guid>https://dev.to/tassiomed/desestruturacao-com-javascript-4nij</guid>
      <description>&lt;p&gt;Olá coders! 😁 Hoje eu vou falar um pouco sobre desestruturação em javascript, espero que gostem do que vem a seguir. Este é um artigo bem básico para quem quer relembrar ou visualizar rapidamente o conceito, nada muito aprofundado.&lt;/p&gt;

&lt;p&gt;A desestruturação é um recurso que foi adicionado no Javascript ES6, como o próprio nome diz, ela &lt;strong&gt;permite desestruturar algo, de forma mais simples, retirando o que precisamos, ou “desembalando”&lt;/strong&gt;. Podemos usa-la para remover elementos de arrays e objetos, de forma bem direta. É uma ótima opção para deixar o código limpo e enxuto. Ao decorrer do texto, vamos entender alguns tipos de desestruturação.&lt;/p&gt;

&lt;h2&gt;
  
  
  Desestruturação Aninhada
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Vira-lara&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tássio&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Rua Daora&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;numero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;234&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Acessando os valores:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="c1"&gt;//5&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nomeDono&lt;/span&gt; &lt;span class="c1"&gt;// 'Tássio'&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;rua&lt;/span&gt; &lt;span class="c1"&gt;// 'Rua Daora'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe o exemplo acima. É um objeto &lt;code&gt;Cachorro&lt;/code&gt; e é com ele que vamos trabalhar ao longo do artigo. Veja que, para acessar os valores, é necessário replicar &lt;code&gt;Cachorro.&lt;/code&gt; várias vezes .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// A desestruturação acima é equivalente a:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;raca&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Vira-lata&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nomeDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tássio&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;idadeDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;rua&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Rua Daora&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;234&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, com a aplicação da desestruturação, o processo é menos trabalhoso. As propriedades do objeto já são transformadas em variáveis diretamente, sem precisar  usar &lt;code&gt;Cachorro.&lt;/code&gt; repetidamente. Esse tipo de desestruturação é conhecida como &lt;strong&gt;aninhada&lt;/strong&gt; pois lida com objetos ou arrays que contêm outros objetos ou arrays internos. Para extrair as propriedades é necessário “mergulhar”(ou “aninhar”) na estrutura.&lt;/p&gt;

&lt;h2&gt;
  
  
  Desestruturação com Alias
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;nomeCachorro&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;racaCachorro&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;idadeCachorro&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;nomeProprietario&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;idadeProprietario&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ruaDono&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;numero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;numeroCasa&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// A desestruturação acima é equivalente a:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nomeCachorro&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;racaCachorro&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Vira-lata&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;idadeCachorro&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nomeProprietario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tássio&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;idadeProprietario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ruaDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Rua Daora&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numeroCasa&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;234&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No código acima as variáveis foram renomeadas, mas os valores permanecem os mesmos. Essa é a desestruturação alias, bastante necessária quando queremos evitar conflitos de nomes no nosso projeto ou quando precisamos que nossas variáveis tenham nomes mais significativos que se encaixem com o contexto. &lt;/p&gt;

&lt;p&gt;Observe que &lt;code&gt;nomeCachorro&lt;/code&gt; é uma nova variável que armazena o valor da propriedade &lt;code&gt;nome&lt;/code&gt; do objeto &lt;code&gt;Cachorro&lt;/code&gt;. É importante ressaltar que &lt;code&gt;nomeCachorro&lt;/code&gt; não altera nem substitui a propriedade &lt;code&gt;nome&lt;/code&gt; no objeto &lt;code&gt;Cachorro&lt;/code&gt;. A desestruturação cria novas variáveis (com nomes diferentes) para os valores das propriedades, mas o objeto original permanece inalterado. &lt;/p&gt;

&lt;p&gt;Tenho falado aqui sobre a Desestruturação Alias, mas por que o nome é “Alias”? 🤔&lt;br&gt;
Bem, se você for traduzir do inglês para o português, &lt;strong&gt;“alias” significa “apelido”, ou seja, estamos criando apelidos para as propriedas do objeto.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Desestruturação Rest/Spread
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Rest (&lt;code&gt;...&lt;/code&gt;)
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;resto&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// A desestruturação acima é equivalente a:&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bob&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;raca&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Vira-lata&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;resto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Tássio&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;26&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Rua Daora&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;numero&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;234&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;No exemplo acima &lt;code&gt;nome&lt;/code&gt; e &lt;code&gt;raca&lt;/code&gt; foram desestruturados e armazenados em variáveis separadas, já &lt;code&gt;resto&lt;/code&gt; é um novo objeto que contém todas as outras propriedades do objeto &lt;code&gt;Cachorro&lt;/code&gt;. &lt;strong&gt;É isso que o operador rest permite fazer: capturar o resto das propriedas de um objeto ou elementos de um array que não foram desestruturados.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Abaixo um  exemplo com array:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numeracao&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10000&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;unidade&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;dezena&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;resto&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;numeracao&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;unidade&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 1&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dezena&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// 10&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;resto&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// [100, 1000, 10000]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em &lt;code&gt;unidade&lt;/code&gt; e &lt;code&gt;dezena&lt;/code&gt; pegamos dois primeiros elementos do array &lt;code&gt;numeracao&lt;/code&gt;, e o &lt;code&gt;resto&lt;/code&gt; é um novo array que contém todos os elementos restantes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Spread (&lt;code&gt;...&lt;/code&gt;)
&lt;/h3&gt;

&lt;p&gt;O operador spread (&lt;code&gt;...&lt;/code&gt;) usa o mesmo sinal que o operador rest, mas é usado de maneira diferente. Enquanto o operador rest coleta elementos ou propriedades restantes, &lt;strong&gt;o operador spread expande um objeto ou array.&lt;/strong&gt; Isso é especialmente útil para copiar e combinar objetos e arrays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemplo com Objeto:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;outroDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Pedro&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cachorroComOutroDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;outroDono&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;cachorroComOutroDono&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// { nome: 'Bob', raca: 'Vira-lata', idade: 5, dono: { nomeDono: 'Pedro', idadeDono: 30 } }&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O objeto &lt;code&gt;Cachorro&lt;/code&gt; é copiado usando o operador spread (&lt;code&gt;...Cachorro&lt;/code&gt;), criando uma nova instância com todas as propriedades do objeto original.&lt;/li&gt;
&lt;li&gt;O novo objeto &lt;code&gt;cachorroComOutroDono&lt;/code&gt; é então combinado com o objeto &lt;code&gt;outroDono&lt;/code&gt;, onde a propriedade &lt;code&gt;dono&lt;/code&gt; do objeto &lt;code&gt;Cachorro&lt;/code&gt; é substituída pela propriedade &lt;code&gt;dono&lt;/code&gt; do objeto &lt;code&gt;outroDono&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Exemplo com array:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;vogais&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;consoantes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;letras&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[...&lt;/span&gt;&lt;span class="nx"&gt;vogais&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;consoantes&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;letras&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// [a, e, i, b, c, d]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima o array &lt;code&gt;vogais&lt;/code&gt; é expandido usando o operador spread (&lt;code&gt;...vogais&lt;/code&gt;), e o mesmo é feito com o array &lt;code&gt;consoantes&lt;/code&gt; . Ambos os arrays são combinados no novo array &lt;code&gt;letras&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Função com Desestruturação
&lt;/h2&gt;

&lt;p&gt;Com a desestruturação em funções você pode desestruturar objetos diretamente nos parâmetros da função. Isso torna a função mais legível e clara, principalmente quando você está lidando com objetos complexos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;printCachorro&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Nome do Cachorro: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Raça: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Idade: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Nome do Dono: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Idade do Dono: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Rua: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Número: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;numero&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;printCachorro&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Cachorro&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe que na função &lt;code&gt;printCachorro&lt;/code&gt;, em vez de acessar &lt;code&gt;Cachorro.nome&lt;/code&gt;, &lt;code&gt;Cachorro.raca&lt;/code&gt;, etc., você pode acessar &lt;code&gt;nome&lt;/code&gt;, &lt;code&gt;raca&lt;/code&gt;, etc., diretamente nos parâmetros. A função define seu parâmetro como um objeto com uma estrutura que corresponde ao objeto &lt;code&gt;Cachorro&lt;/code&gt;. Isso possibilita extrair todas as propriedades necessárias diretamente quando a função é chamada. &lt;/p&gt;

&lt;p&gt;Além disso, também podem ser definidos valores padrão para o caso das propriedades não estarem presentes no objeto passado para a função.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;printCachorro&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="nx"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Desconhecido&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;raca&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Desconhecida&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;dono&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;nomeDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sem nome&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;idadeDono&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;endereco&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;rua&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sem rua&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Nome do Cachorro: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Raça: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;raca&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Idade: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Nome do Dono: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;nomeDono&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Idade do Dono: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;idadeDono&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Rua: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;rua&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Número: &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;numero&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;printCachorro&lt;/span&gt;&lt;span class="p"&gt;({});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima, mesmo se o objeto passado para a função estiver vazio ou faltar alguma propriedade, a função ainda funcionará corretamente por conta dos valores padrão.&lt;/p&gt;

&lt;p&gt;Espero que este artigo tenha sido útil para você entender entender um pouco mais sobre a desestruturação em Javascript. Lembre-se de que utilizando da maneira correta, esse método pode agregar bastante no resultado final do seu trabalho.&lt;/p&gt;

&lt;p&gt;Se você tiver algo a recomendar, feedbacks e etc., sinta-se à vontade para compartilhá-los nos comentários! Até logo, te vejo no próximo artigo!🖖🏽😄&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>10 Extensões úteis para o seu VSCode</title>
      <dc:creator>Tássio Medeiros</dc:creator>
      <pubDate>Wed, 15 May 2024 13:39:41 +0000</pubDate>
      <link>https://dev.to/tassiomed/10-extensoes-uteis-para-o-seu-vscode-56o7</link>
      <guid>https://dev.to/tassiomed/10-extensoes-uteis-para-o-seu-vscode-56o7</guid>
      <description>&lt;p&gt;O Visual Studio Code, ou VS Code, é um dos IDE’s (Ambiente de Desenvolvimento Integrado) mais populares atualmente devido sua interface amigável e sua extensibilidade por meio de extensões. No entanto, com a imensa gama de extensões disponíveis, pode ser desafiador encontrar aquelas que melhor atendem às suas necessidades específicas. Neste artigo, vamos conhecer dez extensões úteis que podem elevar sua experiência. Seja você um desenvolvedor front-end, back-end ou full-stack, estas extensões foram selecionadas para aumentar sua produtividade e melhorar a qualidade do código. Vamos mergulhar e descobrir como essas ferramentas podem transformar sua experiência de desenvolvimento no VS Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Material Icon Theme
&lt;/h2&gt;

&lt;p&gt;O &lt;a href="https://marketplace.visualstudio.com/items?itemName=PKief.material-icon-theme" rel="noopener noreferrer"&gt;Material Icon Theme&lt;/a&gt; personaliza os ícones do seu VSCode de acordo com a linguagem que você está utilizando. É uma ótima ferramenta que agiliza o seu trabalho. Imagina o seguinte, você precisa rapidamente identificar um arquivo de linguagem específico e ele já está lá facilmente visível. Além disso, a extensão também customiza os ícone de suas pastas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwgd3re2roerwhz8d1fn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwwgd3re2roerwhz8d1fn.png" alt="Exemplos de ícones de arquivos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Color Highlight
&lt;/h2&gt;

&lt;p&gt;A extensão &lt;a href="https://marketplace.visualstudio.com/items?itemName=naumovs.color-highlight" rel="noopener noreferrer"&gt;Color HighLight&lt;/a&gt; possibilita a visualização das cores hexadecimais dentro do VSCode. Uma maneira fácil de identificar a cor necessária no momento.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4wgye9g4nyxmsf4brv3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4wgye9g4nyxmsf4brv3.png" alt="Exemplo de cores em hexadecial e rgb"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  SVG Previewer
&lt;/h2&gt;

&lt;p&gt;A extensão &lt;a href="https://marketplace.visualstudio.com/items?itemName=vitaliymaz.vscode-svg-previewer" rel="noopener noreferrer"&gt;SVG Previewer&lt;/a&gt; facilita a pré-visualização de uma arquivo SVG dentro do seu VSCode. Mais uma maneira de identificação rápida dos seus arquivos, agora de imagem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fvitaliymaz%2Fvscode-svg-previewer%2Fmaster%2Fmedia%2Fpreview.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fvitaliymaz%2Fvscode-svg-previewer%2Fmaster%2Fmedia%2Fpreview.gif" alt="Visualização de imagem svg no VSCode"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Server
&lt;/h2&gt;

&lt;p&gt;O &lt;a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer" rel="noopener noreferrer"&gt;Live Server&lt;/a&gt; é uma mão na roda para desenvolvedores Front-end, ela permite visualizar as alterações do seu código em tempo real. A grande vantagem é que o Live Server automatiza a atualização da página no navegador para você através de um localhost. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A página no navegador é recarregada automaticamente sempre que ocorre uma alteração nos arquivos do projeto, economizando tempo e tornando o processo de desenvolvimento mais eficiente.&lt;/li&gt;
&lt;li&gt;Permite o uso de recursos do HTML5, como WebSockets e Geolocation, facilitando o desenvolvimento de aplicações web modernas.&lt;/li&gt;
&lt;li&gt;A extensão é altamente configurável, permitindo que os usuários ajustem as configurações de acordo com suas necessidades específicas de projeto.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fritwickdey%2Fvscode-live-server%2F428e01caf02bfa7ee75741df0f02fc9d2b5b0999%2Fimages%2FScreenshot%2Fvscode-live-server-animated-demo.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fritwickdey%2Fvscode-live-server%2F428e01caf02bfa7ee75741df0f02fc9d2b5b0999%2Fimages%2FScreenshot%2Fvscode-live-server-animated-demo.gif" alt="Visualização do projeto usando LiveServer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git Lens
&lt;/h2&gt;

&lt;p&gt;O &lt;a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens" rel="noopener noreferrer"&gt;Git Lens&lt;/a&gt; é uma extensão que integra as funcionalidade do Git diretamende no VSCode. Essa é uma ferramenta poderosa quando se trata de produtividade e agilidade. Algumas das funcionalidades dela:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Com o GitLens é possível  explorar rapidamente o histórico de um repositório, incluindo branches, tags e commits.&lt;/li&gt;
&lt;li&gt;GitLens você pode visualizar de forma detalhada o histórico de alterações de um arquivo, sendo possível saber quem e quando fez alterações específicas em um projeto.&lt;/li&gt;
&lt;li&gt;Você pode comparar facilmente diferentes revisões de um arquivo para ver as alterações entre elas e entender como o código evoluiu ao longo do tempo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fgitkraken%2Fvscode-gitlens%2Fmain%2Fimages%2Fdocs%2Frevision-navigation.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fgitkraken%2Fvscode-gitlens%2Fmain%2Fimages%2Fdocs%2Frevision-navigation.gif" alt="Visualização de histórico do arquivo usando o GitLens"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ES Lint
&lt;/h2&gt;

&lt;p&gt;O &lt;a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint" rel="noopener noreferrer"&gt;ES Lint&lt;/a&gt; é um linter bastante utilizado pela comunidade do Javascript e Typescript. Esta extensão ajuda a identificar erros de sintaxe e problemas de estilo no código JavaScript, ajudando os desenvolvedores a manter um código limpo e legível.  Além disso, pode ser facilmente configurado para atender às necessidades do seu projeto, tudo através de um arquivo de configuração simples.&lt;/p&gt;

&lt;p&gt;Na imagem abaixo é possível observar a ferramenta indicando erros de código em javascript:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxh46ugn8zefru5gql4tg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxh46ugn8zefru5gql4tg.png" alt="ESLint apresentando erros de código ao usuário"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Github Copilot
&lt;/h2&gt;

&lt;p&gt;O &lt;a href="https://visualstudio.microsoft.com/pt-br/github-copilot/" rel="noopener noreferrer"&gt;Github Copilot&lt;/a&gt; é uma extensão que você pode usar como uma assistente ou um parceiro de programação. Esta ferramenta desenvolvida pelo Github e pela Open AI pode gera sugestões de código com base no que você está escrevendo. É uma ótima opção quando você lida com tarefas repetitivas. Abaixo algumas vantagens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot é alimentado por modelos de linguagem treinados em uma grande quantidade de código-fonte de código aberto. Isso significa que ele está constantemente aprendendo com novos padrões de codificação e soluções para problemas comuns, tornando suas sugestões cada vez mais precisas e úteis ao longo do tempo.&lt;/li&gt;
&lt;li&gt;Embora inicialmente tenha sido lançado com suporte principalmente para Python e JavaScript, o GitHub Copilot está expandindo seu suporte para uma variedade de linguagens de programação, o que o torna útil para uma ampla gama de desenvolvedores.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F37570492%2F212964557-8d832278-61bb-4288-a8a7-47f35859e868.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F37570492%2F212964557-8d832278-61bb-4288-a8a7-47f35859e868.gif" alt="Github Copilot auxiliando na construção de código"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Markdown All in One
&lt;/h2&gt;

&lt;p&gt;Escrever um código limpo e que funcionen bem é essencial. Mas além disso, um bom programador ganha bons pontos aos escrever um README que seja visualmente bem construído  e  que explique bem o seu projeto. Neste contexto, a extensão &lt;a href="https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one" rel="noopener noreferrer"&gt;Markdown All in One&lt;/a&gt; se encaixa como uma ótima ferramenta. Usando-a você pode editar e visualizar seu documento Markdown no próprio Visual Studio Code, sem a necessidade de alternar entre diferentes aplicativos ou janelas.&lt;/p&gt;

&lt;p&gt;Abaixo algumas de suas principais vantagens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A extensão Markdown All In One oferece recursos de previsão para Markdown, o que significa que ela pode sugerir automaticamente elementos Markdown enquanto você digita, economizando tempo e esforço na digitação.&lt;/li&gt;
&lt;li&gt;A extensão facilita a criação de tabelas Markdown e a inserção de emojis, simplificando a formatação e tornando o documento mais visualmente atraente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fyzhang-gh%2Fvscode-markdown%2Fmaster%2Fimages%2Fgifs%2Fsection-numbers.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fyzhang-gh%2Fvscode-markdown%2Fmaster%2Fimages%2Fgifs%2Fsection-numbers.gif" alt="Markdown All In One auxiliando usuário na construção de texto no formato markdown"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NPM IntelliSense
&lt;/h2&gt;

&lt;p&gt;Mais uma extensão voltada para produtividade que pode agregar muito é a &lt;a href="https://marketplace.visualstudio.com/items?itemName=christian-kohler.npm-intellisense" rel="noopener noreferrer"&gt;NPM IntelliSense&lt;/a&gt;. Com esta ferramenta você obtém autocompletar para nomes de pacotes npm diretamente no editor. Isso economiza tempo e ajuda a evitar erros de digitação ao instalar ou importar pacotes em seu projeto.&lt;/p&gt;

&lt;p&gt;Além disso, outras 3 vantagens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A extensão fornece informações sobre as versões disponíveis dos pacotes npm, o que pode ajudar a garantir que você esteja instalando a versão mais recente ou apropriada para o seu projeto.&lt;/li&gt;
&lt;li&gt;Se você estiver usando aliases de importação em seu projeto (por exemplo, &lt;strong&gt;&lt;code&gt;import MyComponent from '@/components/MyComponent'&lt;/code&gt;&lt;/strong&gt;), o npm IntelliSense pode reconhecê-los e oferecer autocompletar para esses caminhos personalizados.&lt;/li&gt;
&lt;li&gt;A extensão oferece suporte para completar scripts npm e outras configurações diretamente no arquivo &lt;strong&gt;&lt;code&gt;package.json&lt;/code&gt;&lt;/strong&gt;, facilitando a edição e a manutenção desse arquivo crucial.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FChristianKohler%2FNpmIntellisense%2Fbc5521b659b700c8a91cf04897007c611ed9532a%2Fimages%2Frequire_withname.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FChristianKohler%2FNpmIntellisense%2Fbc5521b659b700c8a91cf04897007c611ed9532a%2Fimages%2Frequire_withname.gif" alt="Visualização do NPM Intellisense ajudando na importação"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript (ES6) code snippets
&lt;/h2&gt;

&lt;p&gt;A extensão &lt;a href="https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets" rel="noopener noreferrer"&gt;JavaScript (ES6) code snippets&lt;/a&gt; mais uma ferramenta aliada da produtividade. Com ela você tem disponível snippets de código para Javascript que podem te ajudar a poupar tempo.&lt;/p&gt;

&lt;p&gt;Na tabela abaixo alguns exemplos de atalhos para métodos do javascript: &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Atalho&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;fre&lt;/td&gt;
&lt;td&gt;Loop forEach em sintaxe ES6&lt;/td&gt;
&lt;td&gt;array.forEach(currentItem =&amp;gt; {})&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;anfn&lt;/td&gt;
&lt;td&gt;Cria uma função anônima&lt;/td&gt;
&lt;td&gt;(params) =&amp;gt; {}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sto&lt;/td&gt;
&lt;td&gt;Método auxiliar setTimeout&lt;/td&gt;
&lt;td&gt;setTimeout(() =&amp;gt; {});&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;prom&lt;/td&gt;
&lt;td&gt;Cria uma nova Promise&lt;/td&gt;
&lt;td&gt;return new Promise((resolve, reject) =&amp;gt; {})&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;thenc&lt;/td&gt;
&lt;td&gt;Adiciona declarações then e catch a uma Promise&lt;/td&gt;
&lt;td&gt;then((res) =&amp;gt; {}).catch((err) =&amp;gt; {})&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Mais algumas vantagens dessa extensão:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Os snippets fornecidos pela extensão são especialmente úteis para JavaScript moderno, como ES6 e versões posteriores, incluindo recursos como arrow functions, template literals, destructuring, spread/rest operators, classes, async/await, entre outros.&lt;/li&gt;
&lt;li&gt;Ao utilizar os snippets fornecidos pela extensão, você garante que seu código siga padrões consistentes e modernos de codificação JavaScript, o que pode melhorar a legibilidade e a manutenibilidade do código.&lt;/li&gt;
&lt;li&gt;Ao explorar os snippets fornecidos pela extensão, os desenvolvedores podem aprender novos recursos e sintaxes do JavaScript moderno. Isso é especialmente útil para desenvolvedores que estão se familiarizando com ES6 e versões posteriores.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na tabela abaixo estão alguns métodos de console:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Atalho&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Exemplo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;cas→&lt;/td&gt;
&lt;td&gt;Exibe uma mensagem de alerta no console&lt;/td&gt;
&lt;td&gt;console.assert(expression, object)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ccl-&lt;/td&gt;
&lt;td&gt;Limpa o console&lt;/td&gt;
&lt;td&gt;console.clear()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cnb&lt;/td&gt;
&lt;td&gt;Conta o número de vezes que um determinado rótulo foi usado&lt;/td&gt;
&lt;td&gt;console.count(label)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cdb&lt;/td&gt;
&lt;td&gt;Exibe uma mensagem de depuração no console&lt;/td&gt;
&lt;td&gt;console.debug(object)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cdi-&lt;/td&gt;
&lt;td&gt;Exibe as propriedades de um objeto no console&lt;/td&gt;
&lt;td&gt;console.dir(object)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Espero que este artigo tenha sido útil para você descobrir novas extensões que podem aprimorar sua experiência de desenvolvimento. Lembre-se de que a escolha das extensões certas pode fazer uma grande diferença em sua produtividade e no resultado final do seu trabalho. &lt;/p&gt;

&lt;p&gt;Se você tiver alguma extensão favorita que não foi mencionada aqui, sinta-se à vontade para compartilhá-la nos comentários! Até logo e  happy coding! 😄&lt;/p&gt;

</description>
      <category>extensions</category>
      <category>vscode</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
