<?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>Forem: Telles (@UnicornCoder)</title>
    <description>The latest articles on Forem by Telles (@UnicornCoder) (@telles).</description>
    <link>https://forem.com/telles</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%2F133353%2Feb61e9cd-c65b-4531-9189-f5650ed9cae1.jpg</url>
      <title>Forem: Telles (@UnicornCoder)</title>
      <link>https://forem.com/telles</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/telles"/>
    <language>en</language>
    <item>
      <title>CSSOM — Modelo de Objeto CSS</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Thu, 14 Dec 2023 16:52:03 +0000</pubDate>
      <link>https://forem.com/telles/cssom-modelo-de-objeto-css-3ehd</link>
      <guid>https://forem.com/telles/cssom-modelo-de-objeto-css-3ehd</guid>
      <description>&lt;p&gt;As Folhas de Estilo em Cascata (CSS) desempenham um papel fundamental no desenvolvimento web, controlando a apresentação e o layout das páginas da web. Enquanto muitos desenvolvedores estão familiarizados com o Modelo de Objeto de Documento (DOM) para manipular documentos HTML e XML, poucos estão familiarizados com o Modelo de Objeto CSS (CSSOM). Neste artigo, exploraremos o CSSOM em detalhes, abordando sua importância, estrutura e aplicações práticas no desenvolvimento web.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Esse artigo foi criado para abordagem do tema desse vídeo:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ay5X2dmyTN4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o Modelo de Objeto CSS (CSSOM)?
&lt;/h2&gt;

&lt;p&gt;O Modelo de Objeto CSS, frequentemente abreviado como CSSOM, é um componente fundamental no desenvolvimento web que lida com a representação e manipulação de estilos CSS em um documento web. Ele atua como uma ponte entre os estilos CSS definidos em suas folhas de estilo e como esses estilos são aplicados aos elementos HTML em uma página da web.&lt;/p&gt;

&lt;p&gt;Em termos simples, o CSSOM fornece uma maneira estruturada de acessar, modificar e manipular propriedades e regras CSS aplicadas aos elementos HTML. Assim como o DOM permite que você interaja com a estrutura e o conteúdo de um documento HTML, o CSSOM permite que você trabalhe com os estilos CSS aplicados a esses elementos.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Todo código contido nesse artigo está em JavaScript.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  A Importância do CSSOM
&lt;/h2&gt;

&lt;p&gt;O CSSOM desempenha um papel crucial no desenvolvimento web por várias razões:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Separação de conteúdo e apresentação&lt;/strong&gt;&lt;br&gt;
Uma das diretrizes fundamentais do desenvolvimento web é a separação de conteúdo e apresentação. Isso significa que o HTML deve conter principalmente informações e estrutura, enquanto o CSS é responsável pela aparência e estilo. O CSSOM torna possível essa separação, permitindo que você altere a aparência de uma página sem afetar seu conteúdo.&lt;/p&gt;

&lt;p&gt;Aqui estão algumas razões pelas quais isso é crucial:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Manutenção mais fácil&lt;br&gt;
Ao manter o conteúdo e a apresentação separados, torna-se mais fácil fazer alterações em um aspecto sem afetar o outro. Isso é particularmente importante em projetos web de grande escala, onde várias pessoas podem estar trabalhando em diferentes partes do projeto. A manutenção se torna mais eficiente quando você pode fazer alterações nos estilos sem tocar no conteúdo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Acessibilidade&lt;br&gt;
A separação de conteúdo e apresentação também é fundamental para garantir que seu site seja acessível a todos os usuários, incluindo aqueles que usam leitores de tela. O conteúdo bem estruturado (semântica adequada) garante que a informação seja clara, enquanto os estilos cuidadosamente aplicados garantem que a apresentação seja agradável, mas não prejudique a compreensão.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexibilidade&lt;br&gt;
Ao separar conteúdo e apresentação, você ganha flexibilidade para adaptar seu site a diferentes dispositivos e tamanhos de tela. Isso é essencial em um mundo onde os usuários acessam sites de uma variedade de dispositivos, desde smartphones até telas grandes de desktop. Usando técnicas responsivas de CSS, você pode ajustar facilmente a apresentação de acordo com as necessidades do dispositivo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Desenvolvimento mais rápido&lt;br&gt;
Separar conteúdo e apresentação também pode acelerar o desenvolvimento. Os desenvolvedores podem se concentrar em criar a estrutura semântica do documento HTML, enquanto os designers podem trabalhar nos estilos CSS sem interferir na estrutura. Isso permite que ambas as equipes trabalhem simultaneamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Acesso e manipulação de estilos&lt;br&gt;
O CSSOM oferece uma interface programática para acessar e manipular estilos CSS. Isso é essencial para criar páginas da web dinâmicas e interativas. Você pode modificar estilos em resposta a eventos do usuário, criar temas alternativos para sua página ou até mesmo criar ferramentas de personalização de estilo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Renderização eficiente&lt;br&gt;
O navegador utiliza o CSSOM para calcular como os elementos da página devem ser exibidos. Ao otimizar o desempenho do CSSOM, você pode melhorar a velocidade de carregamento e renderização de suas páginas da web.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Acesso e manipulação de estilos&lt;/strong&gt;&lt;br&gt;
O CSSOM oferece uma interface programática para acessar e manipular estilos CSS. Isso é essencial para criar páginas da web dinâmicas e interativas. Você pode modificar estilos em resposta a eventos do usuário, criar temas alternativos para sua página ou até mesmo criar ferramentas de personalização de estilo.&lt;/p&gt;

&lt;p&gt;Aqui estão algumas técnicas comuns:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Acesso por meio do objeto &lt;code&gt;style&lt;/code&gt; de um elemento&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cada elemento HTML possui uma propriedade &lt;code&gt;style&lt;/code&gt; que representa os estilos aplicados diretamente a esse elemento. Você pode acessar e modificar esses estilos da seguinte forma:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;meu-elemento&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;estilo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso permite que você acesse e modifique propriedades de estilo específicas diretamente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backgroundColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;azul&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fontSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;16px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- Acesso a estilos computados&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os estilos computados são os estilos finais aplicados a um elemento após a resolução de todas as regras CSS que se aplicam a ele. Você pode acessar os estilos computados por meio do &lt;code&gt;window.getComputedStyle&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;meu-elemento&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;estilosComputados&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getComputedStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

&lt;span class="c1"&gt;// Acessando um estilo específico &lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;corDeFundo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;estilosComputados&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backgroundColor&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;tamanhoDaFonte&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;estilosComputados&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fontSize&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- Acesso a regras CSS externas&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Se você deseja acessar regras CSS que não são diretamente aplicadas a um elemento específico, pode fazê-lo por meio das folhas de estilo (stylesheets) vinculadas à página. O CSSOM permite que você percorra as regras em uma folha de estilo e recupere informações sobre elas:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Obtendo a primeira folha de estilo vinculada à página &lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;folhaDeEstilo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;styleSheets&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; 

&lt;span class="c1"&gt;// Iterando pelas regras na folha de estilo &lt;/span&gt;
&lt;span class="k"&gt;for &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;regra&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;folhaDeEstilo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cssRules&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="nx"&gt;regra&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cssText&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Exibe o texto da regra CSS &lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Manipulação de Estilos com o CSSOM
&lt;/h2&gt;

&lt;p&gt;Além do acesso aos estilos, o CSSOM também permite a manipulação dos estilos CSS. Isso é útil para criar interatividade em uma página da web. Aqui estão algumas maneiras de manipular estilos:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Modificação direta de estilos&lt;/strong&gt;&lt;br&gt;
Você pode modificar estilos diretamente usando o objeto style de um elemento, como mencionado anteriormente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backgroundColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;azul&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fontSize&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;16px&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- Adição de classes CSS&lt;/strong&gt;&lt;br&gt;
Outra técnica comum é adicionar ou remover classes CSS de elementos HTML. Isso é especialmente útil quando você deseja aplicar estilos predefinidos a elementos em resposta a eventos do usuário:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;destaque&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;destaque&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- Criação e modificação de regras CSS dinamicamente&lt;/strong&gt;&lt;br&gt;
Você pode criar e modificar regras CSS dinamicamente e adicioná-las ao CSSOM usando JavaScript. Isso permite que você adicione novos estilos à página sem recarregá-la:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;novaRegra&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;styleSheets&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;insertRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;h1 { color: verde; }&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- Remoção de regras CSS&lt;/strong&gt;&lt;br&gt;
Também é possível remover regras CSS existentes do CSSOM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;styleSheets&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;deleteRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Renderização eficiente
&lt;/h2&gt;

&lt;p&gt;O navegador utiliza o CSSOM para calcular como os elementos da página devem ser exibidos. Ao otimizar o desempenho do CSSOM, você pode melhorar a velocidade de carregamento e renderização de suas páginas da web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estrutura do CSSOM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O CSSOM é uma representação em árvore dos estilos CSS aplicados a uma página da web. Ele inclui os seguintes componentes principais:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Regras CSS&lt;br&gt;
As regras CSS são o cerne do CSSOM. Elas contêm informações sobre como os estilos devem ser aplicados aos elementos HTML. As regras são divididas em seletores (que indicam a quais elementos se aplicam) e declarações (que definem as propriedades e valores a serem aplicados).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Estilos Computados&lt;br&gt;
Os estilos computados representam os estilos finais aplicados a um elemento HTML após a resolução de todas as regras CSS que se aplicam a ele. Isso leva em consideração herança, especificidade e outros aspectos das regras CSS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Elementos&lt;br&gt;
Os elementos representam os elementos HTML em uma página da web. Cada elemento tem uma árvore de estilos associada a ele que contém os estilos aplicados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nodes(Nós)&lt;br&gt;
Os nós são objetos intermediários que conectam elementos a regras CSS. Eles representam a interseção entre a estrutura do DOM e a estrutura do CSSOM.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Manipulação do CSSOM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Manipular o CSSOM envolve a utilização de JavaScript para acessar e modificar estilos CSS. Aqui estão alguns exemplos de tarefas que você pode realizar com o CSSOM:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Acesso a estilos
Você pode acessar os estilos aplicados a um elemento usando o objeto style do elemento DOM. Por exemplo:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;meu-elemento&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;estilo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Modificação de estilos
Você pode modificar estilos diretamente no CSSOM. Por exemplo, para alterar a cor de fundo de um elemento, você pode fazer o seguinte:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;elemento&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;backgroundColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;azul&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Criação dinâmica de regras CSS
Você pode criar regras CSS dinamicamente e adicioná-las ao CSSOM usando JavaScript. Isso permite que você adicione novos estilos à página sem recarregá-la.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;novaRegra&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;styleSheets&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;insertRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;h1 { color: verde; }&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Remoção de regras CSS
Você também pode remover regras CSS existentes do CSSOM:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;styleSheets&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;deleteRule&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O Modelo de Objeto CSS (CSSOM) é uma parte essencial do desenvolvimento web moderno. Ele permite a manipulação eficiente dos estilos CSS em uma página da web, possibilitando a criação de páginas dinâmicas e altamente personalizáveis. Compreender o CSSOM e suas funcionalidades é fundamental para qualquer desenvolvedor web que deseje criar experiências de usuário envolventes e visualmente atraentes na web. Portanto, aproveite ao máximo essa poderosa ferramenta em seus projetos de desenvolvimento web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fontes de Referência&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para aprofundar o entendimento da importância da separação de conteúdo e apresentação e suas implicações no desenvolvimento web, você pode consultar as seguintes fontes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;W3C CSS Basic Box Model: Este documento da W3C explica como os elementos HTML são formatados usando o CSS e destaca a separação de conteúdo e apresentação. &lt;a href="https://www.w3.org/TR/CSS21/box.html"&gt;W3C CSS Basic Box Model&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MDN Web Docs — Separation of structure and presentation: A Mozilla Developer Network (MDN) oferece informações detalhadas sobre o princípio da separação de estrutura e apresentação, juntamente com exemplos práticos. &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Use_of_color"&gt;MDN Separation of structure and presentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;“CSS Zen Garden”: O projeto CSS Zen Garden demonstra vividamente como a separação de conteúdo e apresentação permite que diferentes estilos sejam aplicados ao mesmo conteúdo HTML. &lt;a href="http://www.csszengarden.com/"&gt;CSS Zen Garden&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>architecture</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Criação de Design Systems - Frontend</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 17 Nov 2023 16:58:42 +0000</pubDate>
      <link>https://forem.com/telles/criacao-de-design-systems-frontend-lak</link>
      <guid>https://forem.com/telles/criacao-de-design-systems-frontend-lak</guid>
      <description>&lt;p&gt;Um design system no contexto do frontend é uma abordagem estruturada e sistemática para projetar e desenvolver interfaces de usuário consistentes em um aplicativo ou site. Ele é composto por um conjunto de diretrizes, padrões, componentes e recursos reutilizáveis, destinados a garantir consistência visual, funcional e de interação em toda a aplicação.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;O video abaixo mostra como podemos criar um DS para React usando Rollup&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zSg_kFzeUR8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Origem do Design System
&lt;/h2&gt;

&lt;p&gt;Embora a ideia de um design system exista há décadas, ela ganhou popularidade nos últimos anos devido à necessidade de projetos complexos de frontend que exigem escalabilidade e consistência. Grandes empresas, como Google, Airbnb e Salesforce, começaram a desenvolver suas próprias soluções internas para lidar com a complexidade e a falta de consistência em seus projetos. Essas soluções internas evoluíram para o que hoje conhecemos como design systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefícios e Problemas Resolvidos pelo Design System:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Consistência: O design system estabelece padrões de design, como cores, tipografia, espaçamento e componentes, que garantem uma aparência e comportamento consistentes em todo o aplicativo ou site. Isso ajuda a criar uma experiência de usuário unificada e reconhecível.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eficiência: Com um design system, os desenvolvedores podem reutilizar componentes e estilos pré-definidos, o que acelera o processo de desenvolvimento e reduz a duplicação de esforços. Além disso, as equipes podem criar protótipos mais rapidamente e tomar decisões de design com base em elementos já existentes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Colaboração: O design system facilita a colaboração entre designers, desenvolvedores e outros membros da equipe. Todos trabalham a partir das mesmas diretrizes e têm acesso aos mesmos componentes, tornando mais fácil compartilhar conhecimento e garantir que todos estejam na mesma página.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Escalabilidade: À medida que um projeto cresce, o design system ajuda a gerenciar a complexidade. Novos recursos e páginas podem ser desenvolvidos rapidamente, mantendo a consistência com o restante do aplicativo.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Empresas que Usam Design Systems:
&lt;/h2&gt;

&lt;p&gt;Várias empresas renomadas adotaram design systems para melhorar sua eficiência e consistência. Alguns exemplos incluem:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Google: O Material Design é o design system do Google, usado em vários de seus produtos, como Gmail, YouTube e Google Drive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Airbnb: O design system da Airbnb é chamado de "Design Language System" (DLS). Ele fornece diretrizes detalhadas para design e desenvolvimento e é usado em seus aplicativos e site.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Atlassian: A empresa por trás de ferramentas como Jira e Confluence possui o Atlassian Design System, que fornece recursos compartilhados e orientações para criar uma experiência consistente em seus produtos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Impactos do Design System nas Áreas Envolvidas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Design: O design system permite que os designers trabalhem em um contexto consistente, economizando tempo e garantindo que suas criações se alinhem com a identidade visual da marca. Além disso, o design system promove a reutilização de componentes, o que facilita a criação de novas telas e fluxos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Desenvolvimento: O design system agiliza o desenvolvimento, fornecendo componentes prontos para uso e estilos pré-definidos, isso reduz a necessidade de escrever código do zero e ajuda os desenvolvedores a manter a consistência em todo o projeto. Além disso, as diretrizes e documentação presentes no design system facilitam o entendimento dos requisitos de design e comportamento dos componentes, acelerando o desenvolvimento.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testes: Com um design system bem estabelecido, os testes podem ser mais eficientes e abrangentes. Como os componentes são padronizados e reutilizáveis, é possível criar testes automatizados que verifiquem sua funcionalidade em diferentes contextos, garantindo a estabilidade do sistema.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentação: O design system também serve como uma fonte centralizada de documentação para o projeto. Ele fornece diretrizes claras sobre o uso de componentes, padrões de design e interações, o que ajuda a equipe a entender e seguir as melhores práticas. Isso é especialmente útil para novos membros da equipe ou aqueles que precisam se atualizar sobre o projeto.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consistência da Marca: O design system ajuda a manter a consistência visual da marca em todos os pontos de contato do usuário. Isso inclui não apenas o aplicativo ou site principal, mas também materiais de marketing, comunicações e outras interfaces relacionadas. A padronização dos elementos de design fortalece a identidade da marca e aumenta o reconhecimento e a confiança do usuário.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Como podemos criar um design system?
&lt;/h2&gt;

&lt;p&gt;Criar um design system envolve um processo cuidadoso e iterativo. Aqui estão algumas etapas essenciais para a criação de um design system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Pesquisa e Análise: Comece pesquisando e analisando os componentes e padrões existentes em seu projeto. Identifique elementos comuns e áreas de inconsistência. Considere as necessidades dos usuários, as melhores práticas de design e as diretrizes de marca.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Definição dos Princípios: Estabeleça os princípios de design que guiarão seu design system. Isso pode incluir diretrizes de estilo, princípios de interação e orientações de acessibilidade. Defina a identidade visual da marca e como ela deve ser aplicada nos componentes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Criação dos Componentes: Comece a projetar e desenvolver os componentes do design system. Isso inclui botões, campos de formulário, menus, tipografia, ícones, entre outros. Certifique-se de que eles sejam flexíveis, reutilizáveis e modulares.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentação: Crie documentação detalhada para o design system. Isso pode incluir especificações técnicas, exemplos de código, diretrizes de design e interação, além de tutoriais sobre como usar os componentes. Uma documentação clara e abrangente é fundamental para garantir a adoção e a consistência do design system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testes e Iteração: Realize testes abrangentes dos componentes do design system. Isso inclui testes de usabilidade, testes de acessibilidade e testes de integração com diferentes plataformas e navegadores. Colete feedback dos usuários e da equipe para iterar e melhorar o design system continuamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implantação e Manutenção: Implemente o design system em seus projetos e mantenha-o atualizado. Certifique-se de que os desenvolvedores estejam utilizando os componentes e seguindo as diretrizes estabelecidas. Realize auditorias periódicas para identificar e corrigir possíveis problemas ou inconsistências.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Quanto às ferramentas para obter métricas, você pode considerar o uso de ferramentas de análise de usuário, como o Google Analytics, para coletar dados sobre o comportamento dos usuários em seu aplicativo ou site. Você pode medir métricas como taxa de conversão, tempo gasto em página, taxas de rejeição, entre outros, para avaliar o desempenho do design system e identificar áreas que precisam ser aprimoradas.&lt;/p&gt;

&lt;p&gt;Para realizar testes, você pode adotar abordagens como testes de usabilidade, em que os usuários interagem com seu design system e fornecem feedback direto. Você também pode realizar testes de acessibilidade, garantindo que seu design system atenda a padrões de acessibilidade reconhecidos.&lt;/p&gt;

&lt;p&gt;Quanto ao trabalho em equipe, é importante envolver designers, desenvolvedores, gerentes de projeto e outras partes interessadas desde o início. Promova uma colaboração estreita e contínua, realizando reuniões regulares, compartilhando documentos e fornecendo feedback construtivo. Uma abordagem ágil, com iterações rápidas e ciclos de feedback, pode ajudar a garantir uma entrega eficiente e contínua do design system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Podemos ter um DS para multiplos frameworks ou cada um ter que ser desenvolvido no seu ecossistema?
&lt;/h2&gt;

&lt;p&gt;Quanto à compatibilidade com diferentes frameworks, é possível criar um design system que seja independente de framework, utilizando tecnologias como HTML, CSS e JavaScript puros. Isso permite que o design system seja utilizado em diferentes ecossistemas de desenvolvimento, como React, Angular, Vue.js, entre outros.&lt;/p&gt;

&lt;p&gt;No entanto, também é possível adaptar o design system para funcionar com um framework específico. Nesse caso, é necessário criar componentes e estilos que estejam alinhados com as convenções e funcionalidades do framework em questão. Isso pode exigir a criação de versões específicas do design system para cada framework, adaptando o código e as diretrizes conforme necessário.&lt;/p&gt;

&lt;p&gt;A escolha entre um design system independente de framework ou adaptado a um framework específico dependerá das necessidades e do contexto do projeto. Se você estiver trabalhando em um ambiente com vários frameworks e deseja ter um único sistema consistente, um design system independente de framework pode ser mais adequado. Por outro lado, se você estiver trabalhando em um projeto específico com um framework predominante, pode ser benéfico adaptar o design system para esse framework, facilitando a integração e o desenvolvimento.&lt;/p&gt;

&lt;p&gt;Ao criar um design system para múltiplos frameworks, considere as seguintes práticas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Separação de preocupações: Mantenha a lógica de negócios separada dos componentes de interface do usuário. Isso permite que você reutilize os mesmos componentes de interface do usuário em diferentes frameworks, adaptando apenas a camada de integração específica de cada framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Abstração e componentização: Crie componentes reutilizáveis e independentes de framework. Isso significa que os componentes devem ser implementados de forma que possam ser facilmente adaptados para funcionar em diferentes frameworks, seguindo as convenções de cada um.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Estruturação modular: Organize seu design system em módulos que podem ser consumidos de forma independente. Isso permite que os desenvolvedores escolham os módulos necessários para seus projetos específicos, facilitando a integração e evitando a inclusão de código desnecessário.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentação clara: Forneça documentação detalhada sobre como integrar e usar o design system em diferentes frameworks. Isso inclui exemplos de código, guias de integração e diretrizes específicas para cada framework suportado.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testes de integração: Realize testes de integração para garantir que o design system funcione corretamente nos diferentes frameworks. Isso ajuda a identificar problemas de compatibilidade e a garantir que os componentes se comportem conforme o esperado em cada ambiente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Comunicação e colaboração: Mantenha uma comunicação aberta com os desenvolvedores de cada framework para entender suas necessidades e desafios específicos. Isso ajuda a criar soluções adaptadas e a garantir a aceitação e adoção do design system por toda a equipe.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lembre-se de que a criação de um design system para múltiplos frameworks pode exigir mais esforço e recursos em comparação com um design system independente de framework. Avalie cuidadosamente as necessidades do projeto, os recursos disponíveis e os benefícios potenciais antes de decidir sobre a abordagem adequada.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que podemos usar para criar um Design System?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Parcel: O Parcel é um bundler de código rápido, sem configuração e baseado em zero-config. Ele pode ser usado para criar o build do design system, agrupando os arquivos de código, estilos e assets em um pacote otimizado para uso em produção.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gulp: O Gulp é uma ferramenta de automação de tarefas em JavaScript. Ele permite criar fluxos de trabalho personalizados para tarefas como compilação de código, otimização de imagens, pré-processamento de estilos, entre outros. O Gulp pode ser usado para automatizar o processo de construção e implantação do design system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Babel: O Babel é uma ferramenta de transpilação de código JavaScript. Ele permite escrever código usando recursos modernos do JavaScript e transformá-lo em uma versão compatível com navegadores mais antigos. O Babel é útil ao criar um design system que precisa suportar uma ampla gama de navegadores e ambientes de execução.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ESLint: O ESLint é uma ferramenta de linting de código JavaScript. Ele ajuda a identificar problemas de qualidade de código, erros e práticas inseguras. Configurar e usar o ESLint em seu projeto de design system pode ajudar a garantir um código consistente e de alta qualidade.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Stylelint: O Stylelint é uma ferramenta de linting para CSS. Ele verifica os estilos do CSS em busca de erros, problemas de formatação e práticas inadequadas. Utilizar o Stylelint pode ajudar a manter um código CSS consistente e de alta qualidade em seu design system.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Mas como eu faço building do meu DS?
&lt;/h2&gt;

&lt;p&gt;Vamos explorar um pouco mais sobre as ferramentas de building (construção) que podem ser usadas no contexto de um design system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Rollup: O Rollup é uma ferramenta de bundling (agrupamento) de módulos JavaScript. Ele é especialmente adequado para criar bibliotecas e pacotes de código reutilizáveis. O Rollup é conhecido por sua eficiência e capacidade de produzir bundles otimizados e de tamanho reduzido. Ele suporta formatos de módulo como ES modules, CommonJS e UMD (Universal Module Definition).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Webpack: O Webpack é uma poderosa ferramenta de bundling que permite criar um pipeline de build flexível e configurável. Ele é amplamente utilizado no desenvolvimento de aplicações front-end e é adequado para projetos complexos que exigem carregamento assíncrono, divisão de código, otimização de recursos e muito mais. O Webpack suporta uma ampla variedade de formatos de módulo e possui uma rica coleção de plugins e loaders para estender suas funcionalidades.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parcel: O Parcel é um bundler de código zero-config que visa simplificar o processo de construção. Ele é fácil de configurar e é capaz de lidar automaticamente com muitas tarefas de construção comuns, como agrupamento de arquivos, transpilação, otimização de imagens e carregamento de recursos. O Parcel é uma ótima opção para projetos mais simples ou para aqueles que exigem uma configuração mínima.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gulp: O Gulp é uma ferramenta de automação de tarefas que permite criar fluxos de trabalho personalizados para a construção do seu design system. Ele é baseado em tarefas (tasks) e pode ser usado para executar uma variedade de tarefas de compilação, otimização, limpeza e implantação. O Gulp oferece flexibilidade para criar um processo de build adaptado às necessidades específicas do seu design system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Grunt: O Grunt é outra ferramenta popular de automação de tarefas, semelhante ao Gulp. Ele também permite criar fluxos de trabalho personalizados para construir, testar e implantar o seu design system. O Grunt possui uma grande quantidade de plugins disponíveis que facilitam a configuração e a execução de várias tarefas de construção.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;npm scripts: Além das ferramentas de build dedicadas, muitas equipes optam por utilizar os scripts definidos no arquivo package.json do seu projeto como uma forma de executar tarefas de construção. O npm, por exemplo, permite que você defina scripts personalizados que podem ser executados usando o comando npm run. Esses scripts podem usar outras ferramentas de construção, como o Rollup ou o Webpack, para realizar as tarefas necessárias.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cada uma dessas ferramentas de construção tem suas próprias vantagens e abordagens, e a escolha depende do contexto e das necessidades específicas do seu design system. É importante considerar os recursos, a configuração, a flexibilidade e a familiaridade da equipe ao escolher uma ferramenta de construção adequada para o seu projeto.&lt;/p&gt;




&lt;p&gt;Em resumo, o uso de um design system no frontend oferece uma abordagem sistemática para alcançar consistência, eficiência e escalabilidade em projetos de interface do usuário. Ele melhora a colaboração entre as equipes, acelera o desenvolvimento, simplifica os testes e promove uma experiência do usuário coesa. Ao adotar um design system, as empresas podem obter benefícios tangíveis em termos de qualidade, produtividade e satisfação do usuário.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Switch...Case</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 16:56:18 +0000</pubDate>
      <link>https://forem.com/telles/switch-case-c7j</link>
      <guid>https://forem.com/telles/switch-case-c7j</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/3-CBh61JStI" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2F3-CBh61JStI%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Objetivo
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Aprender a usar um switch...case&lt;/li&gt;
&lt;li&gt;Entender o que faz cada parte do código&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;p&gt;Uma outra forma de trabalhar com condicionais é usando switch...case e aqui vamos ver o esqueleto dele e suas características básicas:&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;local&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cinema&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;switch &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;local&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cinema&lt;/span&gt;&lt;span class="dl"&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Entrou no cinema!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;quarto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sala&lt;/span&gt;&lt;span class="dl"&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Entrou em casa!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;default&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;qualquer valor diferente dos cases acima&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Output: Entrou no cinema!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Temos o:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;switch&lt;/code&gt; responsável por ouvir a variável que vamos trabalhar&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;case&lt;/code&gt; &lt;strong&gt;sempre irá verificar a igualdade&lt;/strong&gt; do valor passado no &lt;code&gt;switch&lt;/code&gt; com o que está no &lt;code&gt;case&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;break&lt;/code&gt;sempre será usado para parar a execução do &lt;code&gt;case&lt;/code&gt;, caso não exista um &lt;code&gt;break&lt;/code&gt;seu &lt;code&gt;switch&lt;/code&gt; vai mandar para o próximo &lt;code&gt;case&lt;/code&gt; e executará os dois causando um erro&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;default&lt;/code&gt; qualquer valor diferente dos cases acima&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Onde temos nosso console log podemos passar uma função ou qualquer outro validador que você precise&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note que temos dois cases juntos e isso significa que se cair em qualquer um deles a resposta será a mesma.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Temos uma alternativa ao if...else para trabalhar com condicionais de maneira simples também.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Funções</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 16:12:23 +0000</pubDate>
      <link>https://forem.com/telles/funcoes-4kmg</link>
      <guid>https://forem.com/telles/funcoes-4kmg</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/urZqf_nlzzk" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2FurZqf_nlzzk%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Objetivos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Aprender a usar uma função&lt;/li&gt;
&lt;li&gt;Entender o objetivo de uma função&lt;/li&gt;
&lt;li&gt;Outra forma de criar uma mesma função&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;p&gt;Quando falamos em funções no JavaScript estamos falando em criar um escopo para executar um determinado código e podemos ter funções de que retornam algum valor final e as que não retornam e nesse artigo vamos aprender um pouco sobre elas.&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;calculo&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="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&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="nf"&gt;calculo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;argumento&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas nossas funções podemos ter parâmetros para serem passados pelo desenvolvedor esses parâmetros são passados dentro dos parênteses, no exemplo acima temos um único parâmetros chamado &lt;code&gt;numero&lt;/code&gt;, mas não se preocupe porque podemos passar vários parâmetros  se precisarmos e esses parâmetros são usados apenas dentro do escopo da função.&lt;/p&gt;

&lt;p&gt;Para essa função ser executada chamamos ela como &lt;code&gt;calculo(argumento)&lt;/code&gt; e onde é o argumento dela passamos o parametro que ela espera. &lt;/p&gt;

&lt;p&gt;Sempre chamamos uma função usando o nome que criamos e seguido por parênteses para que o Javascript entenda que se trata de uma função.&lt;/p&gt;

&lt;h1&gt;
  
  
  Function com retorno / &lt;code&gt;return&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;Uma função com retorno tem no final da sua execução um &lt;code&gt;return&lt;/code&gt; e em seguida é passado o valor que var ser retornado, podendo ser qualquer tipo de dado, vamos ver e analisar um exemplo:&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;calculo&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="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&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="nf"&gt;calculo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Output: 4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note que para que a função seja executada precisamos chamar ela (o que as vezes chamamos de invocar a função) usando o parênteses após seu nome para que o JavaScript entenda que é uma função e dentro do parênteses passar o valor que vamos usar dentro dela, no caso desse exemplo um &lt;code&gt;number&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Mas e se eu passar um valor não esperado ou mais de um argumento para o parâmetro?&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;calculo&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="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&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="nf"&gt;calculo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//Output: NaN&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo de cima pedimos para que ela realize um calculo usando uma string e o resultado é &lt;code&gt;NaN&lt;/code&gt; (Not a Number), como o return espera um numeral para realizar um calculo ela retorna &lt;code&gt;NaN&lt;/code&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Function sem retorno  / &lt;code&gt;void&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;Como vimos a cima podemos ter um &lt;code&gt;return&lt;/code&gt;na nossa função, mas em que momento usamos sem retorno?&lt;/p&gt;

&lt;p&gt;Bora para um caso de uso aqui:&lt;/p&gt;

&lt;p&gt;Vamos imaginar que nossa função apenas precise enviar um dado para ser salvo em um banco de dados ou até mesmo criar um arquivo com ele, não precisamos de um &lt;code&gt;return&lt;/code&gt;para isso, vamos precisar que ela simplesmente execute a tarefa e pronto, sem a necessidade de retorno algum.&lt;/p&gt;

&lt;h1&gt;
  
  
  Uso da Arrow function
&lt;/h1&gt;

&lt;p&gt;Uma outra forma de criar funções que veio com o ES6 (ECMAScript6) é com o uso das Arrow Functions que faz com que fique mais direta nossas declarações de funções, aqui teremos um exemplo de como ela é e em seguida comentamos como ela funciona:&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;calculo&lt;/span&gt; &lt;span class="o"&gt;=&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&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="nf"&gt;calculo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//Output: 4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima devemos atribuir a função para uma variável ou usar ela imediatamente temos o uso do &lt;code&gt;=&amp;gt;&lt;/code&gt; que nos permite identificar com facilidade uma Arrow Function e mais uma característica é que podemos ter seu retorno implícito isso significa que não precisamos necessariamente usar o &lt;code&gt;return&lt;/code&gt; pois ele já diz que o retorno será o que vem após ela ficando dessa forma o mesmo código:&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;calculo&lt;/span&gt; &lt;span class="o"&gt;=&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="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;numero&lt;/span&gt;

&lt;span class="nf"&gt;calculo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//Output: 4&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Podemos usar functions para criar escopos de códigos reaproveitáveis e isso economiza bastante tempo e linhas de código.&lt;/p&gt;

&lt;p&gt;além de permitir que a gente utilize mais funções ou métodos dentro das mesmas&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comentários</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 16:12:01 +0000</pubDate>
      <link>https://forem.com/telles/comentarios-14bh</link>
      <guid>https://forem.com/telles/comentarios-14bh</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/kLY4eG2UCo4" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2FkLY4eG2UCo4%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Objetivos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Aprender comentários de linha&lt;/li&gt;
&lt;li&gt;Aprender comentários de bloco&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá
&lt;/h1&gt;

&lt;p&gt;No JavaScript podemos comentar o nosso código de duas maneiras e elas são por bloco ou linha para que o JS ignore a execução delas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comentário de bloco
&lt;/h3&gt;

&lt;p&gt;Identificado pelo &lt;code&gt;/* conteudo */&lt;/code&gt; cria um bloco de comentário de uma ou várias linhas.&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="cm"&gt;/*
const nome = "Diego"

let ano = 2021

const admin = false

const cidade = "SP"
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Comentário de linha
&lt;/h3&gt;

&lt;p&gt;identificado por &lt;code&gt;//&lt;/code&gt; duas barras podemos comentar linhas individuais.&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;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;// let ano = 2021&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;admin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="c1"&gt;// const cidade = "SP"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;De maneira simples podemos comentar um trecho ou linha de código para que o JavaScript ignore na hora da execução do script.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Condicionais</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 16:11:48 +0000</pubDate>
      <link>https://forem.com/telles/condicionais-4ple</link>
      <guid>https://forem.com/telles/condicionais-4ple</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/8MdJEwlQsss" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2F8MdJEwlQsss%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;p&gt;As condicionais é basicamente o seu funil de escolhas se vai tratar o dado de uma forma ou outra levando você para o escopo de informação que o resultado for &lt;code&gt;true&lt;/code&gt;, vamos ver uns exemplo de condicionais com if statement que sempre onde estiver um if presente ele aguarda um resultado verdadeiro para entrar no escopo que é dentro das chaves &lt;code&gt;{ }&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  if
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;b&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;É verdadeiro&lt;/span&gt;&lt;span class="dl"&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;h3&gt;
  
  
  if...else if
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;b&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;if: &amp;gt;&amp;gt; É verdadeiro&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;b&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;else if: &amp;gt;&amp;gt; É verdadeiro&lt;/span&gt;&lt;span class="dl"&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;// Output: else if: &amp;gt;&amp;gt; É verdadeiro&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  else
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;b&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;if: &amp;gt;&amp;gt; É verdadeiro&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;else if: &amp;gt;&amp;gt; É verdadeiro&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;else: &amp;gt;&amp;gt; É o falso&lt;/span&gt;&lt;span class="dl"&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;//Output: else: &amp;gt;&amp;gt; É o falso&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Operador ternário
&lt;/h2&gt;

&lt;p&gt;Temos uma opção bem pratica para validar se temos uma informação ou não que é usando o if ternário dessa forma:&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;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Verdadeiro&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Falso&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O ternário verifica somente duas condições diferente do &lt;code&gt;if&lt;/code&gt; que podemos ter alternativas com o &lt;code&gt;else if&lt;/code&gt; e podemos usar qualquer operador lógico para validar a informação antes do ponto de interrogação.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;O &lt;code&gt;if&lt;/code&gt; é utilizado para retornar o valor que é verdadeiro&lt;/p&gt;

&lt;p&gt;O &lt;code&gt;else if&lt;/code&gt; é utilizado para uma segunda possibilidade de vir verdadeiro, podendo ser mais de uma possibilidade isso resulta em mais &lt;code&gt;else if&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;O &lt;code&gt;else&lt;/code&gt; é a nossa saída de false, após passar por cada validador teremos ele esperando para falar que não deu match.&lt;/p&gt;

&lt;p&gt;O if ternário economiza código e traz uma informação mais precisa como resultado&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Loops / Laços de repetição</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 16:11:18 +0000</pubDate>
      <link>https://forem.com/telles/loops-lacos-de-repeticao-oon</link>
      <guid>https://forem.com/telles/loops-lacos-de-repeticao-oon</guid>
      <description>&lt;h1&gt;
  
  
  Objetivos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Entender o uso do laço de repetição&lt;/li&gt;
&lt;li&gt;Aprender laços de repetição em variáveis, arrays e objetos&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;p&gt;Aqui vamos abordar o uso do &lt;code&gt;for()&lt;/code&gt;, &lt;code&gt;for...in&lt;/code&gt; e &lt;code&gt;for...of&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Laços de repetição são usados para manter uma iteração enquanto aquele valor que estiver sendo ouvido for verdadeiro &lt;/p&gt;

&lt;h2&gt;
  
  
  for()
&lt;/h2&gt;

&lt;p&gt;O for é o mais usado pelos devs pela praticidade na iteração, vamos analisar cada elemento desse metódo:&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="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nx"&gt;inicialização&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;condição&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;expressão&lt;/span&gt; &lt;span class="nx"&gt;final&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
   &lt;span class="nx"&gt;declaração&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;code&gt;inicialização&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Geralmente usada para iniciar o contador de variáveis. podemos criar ela no próprio for usando &lt;code&gt;let&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ou até mesmo já ter ela declarada e utilizarmos como inicializador.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;condição&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uma expressão para ser avaliada antes de cada iteração do loop. Se esta expressão for &lt;code&gt;true&lt;/code&gt;, a &lt;code&gt;declaração&lt;/code&gt; será executado. Este teste da condição é opcional. Se omitido, a condição sempre será avaliada como verdadeira. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;expressão final&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Geralmente usado para atualizar ou incrementar a variável do contador.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;declaração&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uma declaração que é executada enquanto a condição for verdadeira. Para executar múltiplas condições dentro do loop, use uma instrução de bloco &lt;code&gt;({...})&lt;/code&gt; para agrupar essas condições. Para não executar declarações dentro do loop, use uma instrução vazia &lt;code&gt;(;)&lt;/code&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="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;i&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="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&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="nx"&gt;log&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="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/* Output:
            0
            1
            2
            3
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  for...in
&lt;/h2&gt;

&lt;p&gt;O laço &lt;code&gt;for...in&lt;/code&gt; interage nas propriedades (&lt;strong&gt;chaves&lt;/strong&gt;) de um objeto, na ordem original de inserção.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;for (variavel in objeto) {...
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;code&gt;variavel&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Uma propriedade diferente do objeto é atribuída em cada iteração. Pode ser declarada com qualquer nome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;objeto&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Objeto com as propriedades enumeradas.&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;let&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;a&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="na"&gt;b&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;c&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;prop&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;obj&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;obj.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt; = &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/* Output:
        obj. a  =  1
        obj. b  =  2
        obj. c  =  3
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  for...of
&lt;/h2&gt;

&lt;p&gt;O loop &lt;code&gt;for...of&lt;/code&gt; percorre objetos iterativos dentro de um array para trazer cada um dos objetos para erem tratados de forma individual.&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="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;variavel&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;iteravel&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;declaração&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;code&gt;variável&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A cada iteração, um objeto do array é atribuido à &lt;em&gt;variavel&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;iteravel&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Array cujos atributos serão iterados.&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;let&lt;/span&gt; &lt;span class="nx"&gt;iterable&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="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Larissa&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Walace&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;for&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;value&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;iterable&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="cm"&gt;/* Output:
            Larissa
            Diego
            Walace
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Podemos usar em &lt;code&gt;string&lt;/code&gt; também
&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;let&lt;/span&gt; &lt;span class="nx"&gt;iterable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;iterable&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="cm"&gt;/* Output:
        T
        e
        l
        l
        e
        s
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;Podemos usar o escopo para realizar validações e tomar ações necessárias para cada um dos dados que precisamos usar, seja para valores ou até mesmo para chaves.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Operadores Lógicos/Matemáticos</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 16:08:00 +0000</pubDate>
      <link>https://forem.com/telles/operadores-logicos-matematicos-mla</link>
      <guid>https://forem.com/telles/operadores-logicos-matematicos-mla</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/8bSgmKuZXrU" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2F8bSgmKuZXrU%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/6MLd4Jv9s5A" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2F6MLd4Jv9s5A%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Objetivos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Aprender o que são operadores lógicos e como funcionam&lt;/li&gt;
&lt;li&gt;Aprender o que são operadores matemáticos e como funcionam&lt;/li&gt;
&lt;li&gt;Ver um pouco deles com trechos de código clicando no 👁&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Operadores Lógicos
&lt;/h2&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%2Fug94dhlffl41j1pfbo6h.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%2Fug94dhlffl41j1pfbo6h.png" alt="Operadores Lógicos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Operadores Matemáticos
&lt;/h2&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%2Fc0tcthl3syldsxob2ouv.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%2Fc0tcthl3syldsxob2ouv.png" alt="Operadores Matemáticos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Como são usados?
&lt;/h3&gt;

&lt;h1&gt;
  
  
  &amp;gt;
&lt;/h1&gt;

&lt;p&gt;Ex.: a &amp;gt; b&lt;br&gt;
Nome: Maior que&lt;br&gt;
Resultado: Verdadeiro se a for maior que b&lt;/p&gt;

&lt;p&gt;Comumente usado para números, então vamos para exemplos numéricos, para tipo &lt;code&gt;string&lt;/code&gt; vamos usado o &lt;code&gt;.length&lt;/code&gt; para pegarmos a quantidade de caracteres que temos&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&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;length&lt;/span&gt; &lt;span class="o"&gt;&amp;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;length&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;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;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;false&lt;/code&gt;, porque a não é maior que &lt;code&gt;b&lt;/code&gt; e sim igual a ele&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;false&lt;/code&gt;, aqui temos uma pegadinha do JavaScript em que usando um número dentro de uma &lt;code&gt;string&lt;/code&gt; (ou no formato de uma) para um calculo matemático ou verificação de maior ou menor ele ignora o fato de que é uma &lt;code&gt;string&lt;/code&gt; e aceita que é um número pois não há validação de tipagem com exceção do operador de soma que faz interpolação de dados&lt;/p&gt;

&lt;h1&gt;
  
  
  &amp;lt;
&lt;/h1&gt;

&lt;p&gt;Ex.: a &amp;lt; b&lt;br&gt;
Nome: Menor que&lt;br&gt;
Resultado: Verdadeiro se a for menor que b&lt;/p&gt;

&lt;p&gt;Comumente usado para números, então vamos para exemplos numéricos, para tipo &lt;code&gt;string&lt;/code&gt; vamos usado o &lt;code&gt;.length&lt;/code&gt; para pegarmos a quantidade de caracteres que temos&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&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;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&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;length&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&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;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;false&lt;/code&gt;, porque a não é menor que &lt;code&gt;b&lt;/code&gt; e sim igual a ele&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;true&lt;/code&gt;, aqui temos uma pegadinha do JavaScript em que usando um número dentro de uma &lt;code&gt;string&lt;/code&gt; (ou no formato de uma) para um calculo matemático ou verificação de maior ou menor ele ignora o fato de que é uma &lt;code&gt;string&lt;/code&gt; e aceita que é um número pois não há validação de tipagem com exceção do operador de soma que faz interpolação de dados&lt;/p&gt;

&lt;h1&gt;
  
  
  ===
&lt;/h1&gt;

&lt;p&gt;Ex.: a === b&lt;br&gt;
Nome: Idêntico&lt;br&gt;
Resultado: Verdadeiro se a for idêntico a b&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;false&lt;/code&gt; pois ele como eu havia dito ele é case-sensitive, ou seja, maiúsculas e minúsculas fazem a diferença.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;false&lt;/code&gt; pois ele compara somente o valor atribuído e não a tipagem dos dados, sendo assim o 10 string é igual ao 10 number&lt;/p&gt;

&lt;h1&gt;
  
  
  ==
&lt;/h1&gt;

&lt;p&gt;Ex.: a == b&lt;br&gt;
Nome: Igual&lt;br&gt;
Resultado: Verdadeiro se a for igual a b&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é falso pois ele como eu havia dito ele é case-sensitive, ou seja, maiúsculas e minúsculas fazem a diferença.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;true&lt;/code&gt; pois ele compara somente o valor atribuído e não a tipagem dos dados&lt;/p&gt;

&lt;h1&gt;
  
  
  &amp;lt;=
&lt;/h1&gt;

&lt;p&gt;Ex.: a &amp;lt;= b&lt;br&gt;
Nome: Menor ou igual&lt;br&gt;
Resultado: Verdadeiro se a for menor ou igual a b&lt;/p&gt;

&lt;p&gt;Comumente usado para números, então vamos para exemplos numéricos, para tipo &lt;code&gt;string&lt;/code&gt; vamos usado o &lt;code&gt;.length&lt;/code&gt; para pegarmos a quantidade de caracteres que temos&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&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;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&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;length&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Falso&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;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&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;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;true&lt;/code&gt;, porque a não é menor que &lt;code&gt;b&lt;/code&gt; e sim igual a ele.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;true&lt;/code&gt;, aqui temos uma pegadinha do JavaScript em que usando um número dentro de uma &lt;code&gt;string&lt;/code&gt; (ou no formato de uma) para um calculo matemático ou verificação de maior ou menor ele ignora o fato de que é uma &lt;code&gt;string&lt;/code&gt; e aceita que é um número pois não há validação de tipagem com exceção do operador de soma que faz interpolação de dados&lt;/p&gt;

&lt;h1&gt;
  
  
  &amp;gt;=
&lt;/h1&gt;

&lt;p&gt;Ex.: a &amp;gt;= b&lt;br&gt;
Nome: Maior ou igual&lt;br&gt;
Resultado: Verdadeiro se a for maior ou igual a b&lt;/p&gt;

&lt;p&gt;Comumente usado para números, então vamos para exemplos numéricos, para tipo &lt;code&gt;string&lt;/code&gt; vamos usado o &lt;code&gt;.length&lt;/code&gt; para pegarmos a quantidade de caracteres que temos&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&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;length&lt;/span&gt; &lt;span class="o"&gt;&amp;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;length&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Falso&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;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;length&lt;/span&gt; &lt;span class="o"&gt;&amp;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;length&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;true&lt;/code&gt;, porque a não é menor que &lt;code&gt;b&lt;/code&gt; e sim igual a ele.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;true&lt;/code&gt;, aqui temos uma pegadinha do JavaScript em que usando um número dentro de uma &lt;code&gt;string&lt;/code&gt; (ou no formato de uma) para um calculo matemático ou verificação de maior ou menor ele ignora o fato de que é uma &lt;code&gt;string&lt;/code&gt; e aceita que é um número pois não há validação de tipagem com exceção do operador de soma que faz interpolação de dados&lt;/p&gt;

&lt;h1&gt;
  
  
  &amp;amp;&amp;amp;
&lt;/h1&gt;

&lt;p&gt;Ex.: a &amp;amp;&amp;amp; b&lt;br&gt;
Nome: E&lt;br&gt;
Resultado: Verdadeiro se existir a e b&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;false&lt;/code&gt;, porque existe &lt;code&gt;a&lt;/code&gt; e &lt;code&gt;b&lt;/code&gt; é vazio .&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e boolean
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;false&lt;/code&gt;, porque a segunda condição é &lt;code&gt;false&lt;/code&gt; por default e precisamos de dois &lt;code&gt;true&lt;/code&gt; para ser &lt;code&gt;true&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  ||
&lt;/h1&gt;

&lt;p&gt;Ex.: a || b&lt;br&gt;
Nome: Ou&lt;br&gt;
Resultado: Verdadeiro se existir a ou existir b&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;true&lt;/code&gt;, porque existe &lt;code&gt;a&lt;/code&gt; e &lt;code&gt;b&lt;/code&gt; é vazio, mas com o &lt;code&gt;ou&lt;/code&gt; como operador precisamos somente de um deles para ser &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e boolean
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo segue a mesma lógica do de cima.&lt;/p&gt;

&lt;h1&gt;
  
  
  !==
&lt;/h1&gt;

&lt;p&gt;Ex.: a !== b&lt;br&gt;
Nome: Não Idêntico&lt;br&gt;
Resultado: Verdadeiro se a não for igual a b ou eles não tiverem o mesmo tipo&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;true&lt;/code&gt; pois ele como eu havia dito ele é case-sensitive, ou seja, maiúsculas e minúsculas fazem a diferença.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;true&lt;/code&gt; pois ele compara somente o valor atribuído e não a tipagem dos dados, sendo assim o 10 string &lt;strong&gt;não é igual&lt;/strong&gt; ao 10 number&lt;/p&gt;

&lt;h1&gt;
  
  
  !=
&lt;/h1&gt;

&lt;p&gt;Ex.: a != b&lt;br&gt;
Nome: Diferente&lt;br&gt;
Resultado: Verdadeiro se a não for igual a b&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando if statement com textos
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado é &lt;code&gt;false&lt;/code&gt; pois ele como eu havia dito ele é case-sensitive, ou seja, maiúsculas e minúsculas fazem a diferença.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usando if statement com textos e números
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;10&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&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;a&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A saída desse exemplo é &lt;code&gt;false&lt;/code&gt; pois ele compara somente o valor atribuído e não a tipagem dos dados, sendo assim o 10 string é igual ao 10 number&lt;/p&gt;

&lt;h1&gt;
  
  
  !
&lt;/h1&gt;

&lt;p&gt;Ex.: !a&lt;br&gt;
Nome: Negação&lt;br&gt;
Resultado: Negação, se o valor for verdadeiro vai transformar em falso e vice versa&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Negação, se o valor for verdadeiro vai transformar em falso e vice versa&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Usando if statement com boolean
&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="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Falso&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="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="c1"&gt;// Entrou aqui no Verdadeiro&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// Falso&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="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// Output: true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Switch...case</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 15:56:58 +0000</pubDate>
      <link>https://forem.com/telles/switch-case-1he6</link>
      <guid>https://forem.com/telles/switch-case-1he6</guid>
      <description>&lt;h1&gt;
  
  
  Objetivo
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Aprender a usar um switch...case&lt;/li&gt;
&lt;li&gt;Entender o que faz cada parte do código&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;p&gt;Uma outra forma de trabalhar com condicionais é usando switch...case e aqui vamos ver o esqueleto dele e suas características básicas:&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;local&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cinema&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;local&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;cinema&lt;/span&gt;&lt;span class="dl"&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Entrou no cinema!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;quarto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sala&lt;/span&gt;&lt;span class="dl"&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Entrou em casa!&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nl"&gt;default&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;qualquer valor diferente dos cases acima&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Output: Entrou no cinema!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Temos o:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;switch&lt;/code&gt; responsável por ouvir a variável que vamos trabalhar&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;case&lt;/code&gt; &lt;strong&gt;sempre irá verificar a igualdade&lt;/strong&gt; do valor passado no &lt;code&gt;switch&lt;/code&gt; com o que está no &lt;code&gt;case&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;break&lt;/code&gt;sempre será usado para parar a execução do &lt;code&gt;case&lt;/code&gt;, caso não exista um &lt;code&gt;break&lt;/code&gt;seu &lt;code&gt;switch&lt;/code&gt; vai mandar para o próximo &lt;code&gt;case&lt;/code&gt; e executará os dois causando um erro&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;default&lt;/code&gt; qualquer valor diferente dos cases acima&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Onde temos nosso console log podemos passar uma função ou qualquer outro validador que você precise&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note que temos dois cases juntos e isso significa que se cair em qualquer um deles a resposta será a mesma.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Temos uma alternativa ao if...else para trabalhar com condicionais de maneira simples também.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Tipos de dados</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 15:56:26 +0000</pubDate>
      <link>https://forem.com/telles/tipos-de-dados-3p7o</link>
      <guid>https://forem.com/telles/tipos-de-dados-3p7o</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/DxBOUQ4vn78" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2FDxBOUQ4vn78%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Objetivos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Entender o diferentes tipos de dados&lt;/li&gt;
&lt;li&gt;Ver como eles funcionam&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá...
&lt;/h1&gt;

&lt;p&gt;Quando trabalhamos com variáveis temos a possibilidade de ter vários tipos e eles podem sem Texto, números, Objetos, Arrays ou Booleanos, nesse artigo vamos entender cada um deles.&lt;/p&gt;

&lt;p&gt;O JavaScript é uma linguagem de tipagem dinâmica. Isso significa que você não necessita declarar o tipo de uma variável antes de sua atribuição. O tipo será automaticamente determinado quando o programa for processado.&lt;/p&gt;

&lt;h3&gt;
  
  
  string
&lt;/h3&gt;

&lt;p&gt;Sempre que quisermos trabalhar com textos vamos usar a nomenclatura de &lt;code&gt;strings&lt;/code&gt; para elas e elas podem ser identificadas facilmente pelo seu uso de aspas duplas ou simples dessa forma &lt;code&gt;"Diego Telles"&lt;/code&gt; ou &lt;code&gt;'Diego Telles'&lt;/code&gt; , mas podemos usar ela para armazenar outros tipos também, mas automaticamente as aspas vão converter para string e tudo se tornará texto no final. Por exemplo:&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;variavel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// string (Texto)&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;variavel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;200&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// string (Texto)&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;variavel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;false&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// string (Texto)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Devemos nos atentar que para o JavaScript um texto escrito com letra maiúscula e um com letra minúscula porque o JavaScript é &lt;a href="https://pt.wikipedia.org/wiki/Case-sensitive" rel="noopener noreferrer"&gt;Case Sensitivity&lt;/a&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;variavel1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;variavel2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;A váriavel1 é diferente da váriavel2&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  number
&lt;/h3&gt;

&lt;p&gt;Para trabalharmos com tipos numéricos podemos passar somente o número inteiro ou decimal que também pode ser chamado de &lt;code&gt;float&lt;/code&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;numerico&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;    &lt;span class="c1"&gt;// number &lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numerico&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;10.25&lt;/span&gt; &lt;span class="c1"&gt;// number&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;numerico&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.410&lt;/span&gt; &lt;span class="c1"&gt;// number&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  boolean
&lt;/h3&gt;

&lt;p&gt;Os booleanos são basicamente o nosso binário que é representado como 0 ou 1, mas aqui teremos eles representados como &lt;code&gt;true&lt;/code&gt; ou &lt;code&gt;false&lt;/code&gt; (Verdadeiro ou Falso) usaremos para validar condicionais como if...else por exemplo vamos ver um exemplo de declaraçã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;const&lt;/span&gt; &lt;span class="nx"&gt;admin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;admin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Ps. Veremos uso dele com if...else no artigo de if...else&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Object
&lt;/h3&gt;

&lt;p&gt;Objetos nada mais é que um conjunto de variáveis de mesmo tipo ou tipos diferentes armazenados em uma única variável onde ela pode ser identificada pelo uso das chaves &lt;code&gt;{ }&lt;/code&gt; e pelo uso de dois pontos &lt;code&gt;:&lt;/code&gt; para separar o que é &lt;em&gt;chave do seu valor&lt;/em&gt;, tudo que tiver dentro das chaves é um objeto, vamos aos exemplos:&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;obj&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="s2"&gt;Diego Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;ano&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse exemplo, notamos um padrão na estrutura que basicamente é após a declaração de uma &lt;strong&gt;chave: valor&lt;/strong&gt; temos uma &lt;strong&gt;vírgula&lt;/strong&gt;. Como havia dito, podemos ter diferentes tipos dentro de um objeto e podemos ter também outros objetos dentro também, dessa forma:&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;obj&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="s2"&gt;Diego Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;ano&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&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;cidade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SP&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;725&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;Atenção, evite o uso de símbolos ou até mesmo traço ou separar palavras nas chaves do seu objeto use o padrão &lt;code&gt;cammelCase&lt;/code&gt; para declarar como nas variáveis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Arrays
&lt;/h3&gt;

&lt;p&gt;O uso do &lt;code&gt;array&lt;/code&gt; é usado para armazenar um ou vários objetos e com ele podemos iterar (percorrer) por cada um desses objetos usando métodos (funções) do próprio JavaScript, o &lt;code&gt;array&lt;/code&gt; pode ser identificado pelo uso de colchetes &lt;code&gt;[ ]&lt;/code&gt; com nenhum ou vários objetos, vamos ver como ele é:&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;arr&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="s2"&gt;Diego Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;ano&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;endereço&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;cidade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SP&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;725&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="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="s2"&gt;Larissa Azevedo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;ano&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;admin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&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;cidade&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;SP&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;180&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Basicamente a estrutura é essa, e assim podemos percorrer por cada um desses objetos com um método &lt;a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Map" rel="noopener noreferrer"&gt;map()&lt;/a&gt; do JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  null
&lt;/h3&gt;

&lt;p&gt;Uma palavra-chave que indica valor nulo. Devido JavaScript ser case-sensitive, null não é o mesmo que Null, NULL, ou ainda outra variação&lt;/p&gt;

&lt;h3&gt;
  
  
  undefined
&lt;/h3&gt;

&lt;p&gt;Uma propriedade superior cujo valor é indefinido&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Podemos usar diferentes tipos de dados em conjunto ou até mesmo separados e devemos nos atentar no uso das letras maiúsculas e minúsculas para comparação de textos por que o JavaScript é Case-sensitive.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Variáveis</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 15:55:52 +0000</pubDate>
      <link>https://forem.com/telles/variaveis-javascript-52m7</link>
      <guid>https://forem.com/telles/variaveis-javascript-52m7</guid>
      <description>&lt;h1&gt;
  
  
  Veja no Youtube:
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://youtu.be/IkZrLkgQ7Wc" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2FIkZrLkgQ7Wc%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/596EJRq-zVU" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fimg.youtube.com%2Fvi%2F596EJRq-zVU%2F0.jpg" alt="VIDEO"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Objetivo
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Entender o que são variáveis e qual o seu propósito&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Bora lá
&lt;/h1&gt;

&lt;p&gt;Para que possamos trabalhar com informações precisamos de um local para armazenar elas e elas podem ser qualquer tipo de informação, quando digo isso quero dizer que pode ser Texto, Números, Objetos, Arrays, Booleanos, vamos falar mais sobre eles depois, mas por enquanto vamos entender como isso funciona.&lt;/p&gt;

&lt;p&gt;Basicamente temos 3 formas de declarar (criar) uma variável, elas podem conter a nomenclatura de var, const ou let.&lt;/p&gt;

&lt;p&gt;Vamos entender o que ela tem a nos oferecer. &lt;/p&gt;

&lt;h1&gt;
  
  
  Formas de declarar
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Var
&lt;/h3&gt;

&lt;p&gt;Usamos para declarar uma variável, opcionalmente, inicializando-a com um valor a qual pode ser reescrita, por exemplo:&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;var&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="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// Declarando a variável&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;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kd"&gt;var&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="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// Recriando a variável&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;nome&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="s2"&gt;Diego Telles&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="c1"&gt;// Reatribuindo valor&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;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Output:&lt;/span&gt;
&lt;span class="c1"&gt;// Diego&lt;/span&gt;
&lt;span class="c1"&gt;// Telles&lt;/span&gt;
&lt;span class="c1"&gt;// Diego Telles&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima o que eu fiz foi basicamente criar uma variável contendo o meu nome e em seguida usei a mesma variável para editar e colocar meu sobrenome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Let
&lt;/h3&gt;

&lt;p&gt;Uma variável declarada como &lt;code&gt;let&lt;/code&gt; leva em conta, não a função onde foi criada, mas sim o bloco de código de sua origem. Isso significa que se a declararmos dentro de um if(), switch() ou for(), ela será “&lt;strong&gt;enxergada&lt;/strong&gt;” apenas dentro desta parte do código, dentro deste escopo específico (Bloco de código).&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;getNome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;let&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;Diego&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;if &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;Diego&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kd"&gt;let&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;Diego Telles&lt;/span&gt;&lt;span class="dl"&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Dentro do if: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;nome&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Fora do if: &lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;getNome&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;// Output:&lt;/span&gt;
&lt;span class="c1"&gt;// Dentro do if: Diego Telles&lt;/span&gt;
&lt;span class="c1"&gt;// Fora do if: Diego&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse trecho de código eu declarei duas variáveis com a mesma nomenclatura "nome" porém com uma diferença, uma delas está fora do &lt;code&gt;if()&lt;/code&gt; e a outra está dentro.&lt;/p&gt;

&lt;p&gt;Quando pedimos para executar nossa função ela imprime valores diferentes por estarem em escopos diferentes, blocos de código, a partir disso temos duas saídas diferentes com variáveis de mesmo nome.&lt;/p&gt;

&lt;h3&gt;
  
  
  Const
&lt;/h3&gt;

&lt;p&gt;Atualmente o grande sucessor do uso do &lt;code&gt;var&lt;/code&gt; em nossas aplicações, ela é usada para criar variáveis constantes que não podem ser sobrescritas.&lt;/p&gt;

&lt;p&gt;Embora o &lt;code&gt;let&lt;/code&gt; garanta o escopo, ainda assim, existe a possibilidade de declararmos uma variável com &lt;code&gt;let&lt;/code&gt; e ela ser &lt;code&gt;undefined&lt;/code&gt;. Por exemplo:&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;let&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;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;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Output: undefined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para evitar que esse problema de acabar declarando uma variável sem um valor atribuído aconteça usamos a &lt;code&gt;const&lt;/code&gt; pois ela exige para que seja criada um valor para ela trazendo o seguinte erro &lt;code&gt;SyntaxError: Missing initializer in const declaration&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Mas agora vamos ao cenário onde eu declarei uma &lt;code&gt;const&lt;/code&gt; e em seguida eu quero mudar o valor dela declarando ela novamente e passando um novo valor, vamos ver o que acontece:&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;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&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;nome&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;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&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;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//Output:&lt;/span&gt;
&lt;span class="c1"&gt;// const nome = "Telles"&lt;/span&gt;
&lt;span class="c1"&gt;//     ^&lt;/span&gt;
&lt;span class="c1"&gt;// SyntaxError: Identifier 'nome' has already been declared&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feito isso ela nos retorna que nome já foi declarado e não permite que seja criado novamente, mas se quisermos reatribuir um valor para ela será que funciona?&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;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Diego&lt;/span&gt;&lt;span class="dl"&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;nome&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="s2"&gt;Telles&lt;/span&gt;&lt;span class="dl"&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;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//Output:&lt;/span&gt;
&lt;span class="c1"&gt;// Diego&lt;/span&gt;
&lt;span class="c1"&gt;// TypeError: Assignment to constant variable.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ela também não permite e o erro agora é &lt;strong&gt;Atribuição a variável constante&lt;/strong&gt; **e traz somente o valor do primeiro console.log() causando um erro na hora de reatribuir e parando a execução do script&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusão
&lt;/h3&gt;

&lt;p&gt;Podemos trabalhar com tipos diferentes de variáveis porem sempre se atente no objetivo de cada uma delas para sua aplicação e após o lançamento do let no &lt;a href="http://es6-features.org/#Constants" rel="noopener noreferrer"&gt;ECMAScript6&lt;/a&gt; o uso do var foi substituído por &lt;code&gt;const&lt;/code&gt; ou &lt;code&gt;let&lt;/code&gt; por motivos de segurança em recriação ou reatribuição de valores por engano.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Lógica de programação com JavaScript - Iniciante</title>
      <dc:creator>Telles (@UnicornCoder)</dc:creator>
      <pubDate>Fri, 05 Mar 2021 15:55:12 +0000</pubDate>
      <link>https://forem.com/telles/logica-de-programacao-com-javascript-iniciante-309n</link>
      <guid>https://forem.com/telles/logica-de-programacao-com-javascript-iniciante-309n</guid>
      <description>&lt;h1&gt;
  
  
  Objetivos
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Escopo&lt;/li&gt;
&lt;li&gt;Comando que vamos ver bastante no demais artigos&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Escopo
&lt;/h1&gt;

&lt;p&gt;Algo que devemos nos atentar bastante é nos escopos, mas afinal o que é isso?&lt;/p&gt;

&lt;p&gt;Bom escopo é basicamente até onde sua váriavel pode ser acessada, a grosso modo.&lt;/p&gt;

&lt;p&gt;O escopo normalmente é identificado com o uso das chaves &lt;code&gt;{ }&lt;/code&gt; nas funções.&lt;/p&gt;

&lt;p&gt;Mas podemos ter tipos diferentes de escopos:&lt;/p&gt;

&lt;h3&gt;
  
  
  Escopo global
&lt;/h3&gt;

&lt;p&gt;Uma variável global é definida quando declaramos uma variável fora de qualquer função, assim ela torna acessível a qualquer parte da nossa aplicação, podendo ser lida e alterada.&lt;/p&gt;

&lt;h3&gt;
  
  
  Escopo local
&lt;/h3&gt;

&lt;p&gt;Uma variável local é definida quando declaramos uma variável dentro de uma função, assim ela torna acessível somente dentro da função onde ela foi declarada.&lt;/p&gt;

&lt;p&gt;Exemplos:&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;varGlobal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Eu sou uma variavel global&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;showMeTheCode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;varLocal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Eu sou uma variavel local&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;varGlobal&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;varLocal&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;varLocal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;// Output: ReferenceError: varLocal is not defined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No exemplo acima não conseguimos acessar a variavel local pois ela só pode ter acesso dentro do escopo que ela está, no caso a função &lt;code&gt;showMeTheCode()&lt;/code&gt;, vamos ver o que acontece se chamarmos a função apenas:&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;varGlobal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Eu sou uma variavel global&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;showMeTheCode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;varLocal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Eu sou uma variavel local&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;varGlobal&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="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;varLocal&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;showMeTheCode&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="cm"&gt;/* Output: 
        Eu sou uma variavel global
        Eu sou uma variavel local
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nesse caso conseguimos acessar as duas variáveis, porque a global está fora do escopo, mas pode ser usada e lida dentro de qualquer escopo.&lt;/p&gt;

&lt;h1&gt;
  
  
  Como ver o retorno dos valores
&lt;/h1&gt;

&lt;p&gt;Podemos usar algumas ferramentas para isso, mas recomendo usar o dev tools do navegador, basta apertar &lt;code&gt;Ctrl + Shift + J&lt;/code&gt; e abrira na aba de console, caso não abra funciona apertando &lt;code&gt;F12&lt;/code&gt; no seu teclado, mas ai você irá navegar para a aba console. &lt;/p&gt;

&lt;p&gt;Para testarmos nossas saídas de código que são nossos resultados, vamos usar o comando &lt;code&gt;console.log(variável)&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
