<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Programe com Faiçal e Conrado</title>
    <description>The latest articles on DEV Community by Programe com Faiçal e Conrado (@programe).</description>
    <link>https://dev.to/programe</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%2Forganization%2Fprofile_image%2F1349%2F3f194639-ce9b-4f52-a9e2-68cc9cbad83a.jpg</url>
      <title>DEV Community: Programe com Faiçal e Conrado</title>
      <link>https://dev.to/programe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/programe"/>
    <language>en</language>
    <item>
      <title>JavaScript, HTML e CSS em português! Como assim?!</title>
      <dc:creator>Faiçal Carvalho</dc:creator>
      <pubDate>Thu, 07 Nov 2019 15:15:32 +0000</pubDate>
      <link>https://dev.to/programe/javascript-html-e-css-em-portugues-como-assim-5emm</link>
      <guid>https://dev.to/programe/javascript-html-e-css-em-portugues-como-assim-5emm</guid>
      <description>&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;JavaScript pt-BR é o nome da tradução da linguagem JavaScript para o português – mais especificamente, para o português falado no Brasil.&lt;/p&gt;

&lt;p&gt;Esta surpreendente variação da linguagem JavaScript está disponível como uma das principais características da &lt;a href="https://timus.app/"&gt;plataforma Timus&lt;/a&gt;, que oferece um ambiente online para criação de aplicações baseadas na web.&lt;/p&gt;

&lt;p&gt;A plataforma Timus vai mais além: ela permite não só a programação em JavaScript pt-BR, mas também em HTML pt-BR e CSS pt-BR – estas duas últimas sendo a tradução das linguagens HTML e CSS para o português falado no Brasil.&lt;/p&gt;

&lt;p&gt;Por que traduzir? Por que não ensinar programação usando simplesmente JavaScript, HTML e CSS no original, em inglês?&lt;/p&gt;

&lt;p&gt;As linguagens de programação usam, atualmente, o texto escrito para representar os programas. Você pode ver cada programa como um texto que deve ser redigido de acordo com regras semelhantes às que você segue ao escrever, por exemplo, uma redação – um pouco mais rígidas, talvez.&lt;/p&gt;

&lt;p&gt;Programar é muito parecido com escrever. Os mesmos atributos de um bom texto valem também para caracterizar um bom programa. Clareza, precisão, simplicidade, objetividade, equilíbrio são características que se aplicam como critérios de qualidade tanto na produção de um texto como na de um programa.&lt;/p&gt;

&lt;p&gt;Vamos imaginar, então, que você ainda não tem um bom entendimento de inglês. Ou seja, seu inglês deixa a desejar em muitos pontos.&lt;/p&gt;

&lt;p&gt;Vamos imaginar também que, nessa situação, alguém lhe pede para elaborar um pequeno texto – um parágrafo – sobre, por exemplo, o campeonato brasileiro de futebol. No entanto, o pedido é feito com um "pequeno" detalhe adicional: o texto tem de ser em inglês!&lt;/p&gt;

&lt;p&gt;O que aconteceria? Você conseguiria cumprir com essa tarefa? Seria fácil realizá-la?&lt;/p&gt;

&lt;p&gt;É mais ou menos isso que ocorre quando você quer aprender a programar e, mesmo tendo essa dificuldade, se vê obrigado a usar as linguagens de programação em inglês.&lt;/p&gt;

&lt;p&gt;Uma coisa é a programação; outra é o inglês. A programação, por si só, já apresenta uma série de conceitos novos que precisam ser assimilados. O processo de assimilação, definitivamente, não é algo simples. Se nesse processo houver a dificuldade adicional causada pelo inglês, o caminho será muito mais difícil.&lt;/p&gt;

&lt;p&gt;Tipicamente, a notação usada nas linguagens de programação é mais concisa do que a que pode ser usada, por exemplo, numa redação. Isso é verdade. No entanto, mesmo havendo a notação mais concisa, cada termo que compõe a linguagem de programação está ali carregando o mesmo significado que possui na língua original – tipicamente, o inglês.&lt;/p&gt;

&lt;p&gt;Imagine uma pessoa que não sabe programar e lê o texto de um programa. Por entender a língua nativa na qual se baseia a linguagem de programação que está sendo usada, essa pessoa já pode ter pelo menos uma ideia do que está escrito.&lt;/p&gt;

&lt;p&gt;Por outro lado, quando não há esse entendimento mínimo, o texto do programa fica parecido com o seguinte:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="k"&gt;cyz&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inf&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;sup&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;biczro&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="kd"&gt;swpo&lt;/span&gt; &lt;span class="nx"&gt;aux&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;sup&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;inf&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
            &lt;span class="nx"&gt;itens&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;aux&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
            &lt;span class="nx"&gt;inf&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;czaspod&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;inf&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;sup&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;rotwpo&lt;/span&gt; &lt;span class="kc"&gt;wdziwypra&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;rotwpo&lt;/span&gt; &lt;span class="kc"&gt;kaywylsz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para programar, você precisa assimilar alguns conceitos que são fundamentais para a sua formação como programador, seja qual for a linguagem ou sistema de desenvolvimento de software que você utilize hoje ou venha a utilizar no futuro.&lt;/p&gt;

&lt;p&gt;O que consideramos importante é justamente a firme assimilação desses conceitos fundamentais.&lt;/p&gt;

&lt;p&gt;Para qualquer pessoa que não tenha ainda uma sólida base de conhecimentos da língua inglesa, é mais fácil começar a programar usando palavras na sua língua nativa.&lt;/p&gt;

&lt;p&gt;Nesse aprendizado, conforme dissemos, o estudante precisa assimilar conceitos básicos, e o uso de palavras que lhe são naturalmente familiares é um fator que simplifica e acelera o processo de assimilação.&lt;/p&gt;

&lt;p&gt;E uma vez assimilados os conceitos básicos, será mais fácil, futuramente, usar – se necessário – as linguagens no original, em inglês.&lt;/p&gt;

&lt;p&gt;JavaScript, na sua variação pt-BR usa palavras em português. Toda a estrutura sintática de JavaScript pt-BR e todos os seus mecanismos dinâmicos são exatamente os mesmos que os que configuram a linguagem JavaScript original, em inglês. A única diferença é o uso de palavras em português.&lt;/p&gt;

&lt;p&gt;O mesmo vale para HTML pt-BR e CSS pt-BR, ficando mantidas as características de cada linguagem.&lt;/p&gt;

&lt;p&gt;Usando o Timus, você pode, inclusive, facilmente alternar a língua do módulo que está sendo exibido no editor, variando entre o inglês (en) e o português (pt-BR).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L3_VmVVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://storage.googleapis.com/lumeclouddev.appspot.com/programe/Alt-En-Pt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L3_VmVVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://storage.googleapis.com/lumeclouddev.appspot.com/programe/Alt-En-Pt.gif" alt="Alternando entre português e inglês"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Estamos, no momento, adotando a variação pt-BR porque o nosso atual público alvo reside no Brasil e tem o português como língua nativa.&lt;/p&gt;

&lt;p&gt;Insistimos: o processo de assimilação é mais simples e rápido quando na linguagem de programação são usados termos com os quais já existe uma familiarização natural, propiciada pela língua nativa.&lt;/p&gt;

&lt;p&gt;Para muitos brasileiros interessados em aprender programação, não haver a necessidade do inglês é uma barreira a menos no caminho rumo à culminação do aprendizado.&lt;/p&gt;

</description>
      <category>html</category>
      <category>beginners</category>
      <category>ptbr</category>
      <category>timus</category>
    </item>
    <item>
      <title>Os comandos enquanto (while) e fazer-enquanto (do-while)</title>
      <dc:creator>Faiçal Carvalho</dc:creator>
      <pubDate>Fri, 18 Oct 2019 17:45:51 +0000</pubDate>
      <link>https://dev.to/programe/os-comandos-enquanto-while-e-fazer-enquanto-do-while-2bh5</link>
      <guid>https://dev.to/programe/os-comandos-enquanto-while-e-fazer-enquanto-do-while-2bh5</guid>
      <description>&lt;h2&gt;
  
  
  Diferenças entre esses dois comandos de repetição
&lt;/h2&gt;

&lt;p&gt;Os computadores são muito eficientes na realização de tarefas repetitivas. Por causa disso, as linguagens de programação oferecem vários recursos relacionados com o controle dessas repetições.&lt;/p&gt;

&lt;p&gt;Um deles é o comando &lt;code&gt;enquanto&lt;/code&gt; (&lt;code&gt;while&lt;/code&gt;, em inglês).&lt;/p&gt;

&lt;p&gt;Outro é o comando &lt;code&gt;fazer-enquanto&lt;/code&gt; (&lt;code&gt;do-while&lt;/code&gt;, em inglês).&lt;/p&gt;

&lt;p&gt;Esses dois comandos são parecidos, mas funcionam de forma um pouco diferente. Vamos mostrar aqui aspectos da diferença entre esses dois comandos repetitivos, conforme as regras da linguagem JavaScript.&lt;/p&gt;

&lt;p&gt;O comando enquanto tem a seguinte sintaxe:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;enquanto&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="nx"&gt;comando&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Em inglês:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;while&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="nx"&gt;comando&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A execução de um comando &lt;code&gt;enquanto&lt;/code&gt; é bastante intuitiva, e segue os seguintes passos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A &lt;em&gt;condição&lt;/em&gt; é avaliada&lt;/li&gt;
&lt;li&gt;Caso o resultado seja &lt;code&gt;não&lt;/code&gt; (falso), o comando que aparece depois da condição &lt;strong&gt;não&lt;/strong&gt; é executado, e a execução do programa prossegue com o comando seguinte ao comando &lt;code&gt;enquanto&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Caso o resultado da avaliação da condição seja &lt;code&gt;sim&lt;/code&gt; (verdadeiro), o comando é executado e o ciclo recomeça com o passo 1.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O comando &lt;code&gt;fazer-enquanto&lt;/code&gt; tem a seguinte sintaxe:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;fazer&lt;/span&gt;
    &lt;span class="nx"&gt;comando&lt;/span&gt;
&lt;span class="kd"&gt;enquanto&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Em inglês:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;do&lt;/span&gt;
    &lt;span class="nx"&gt;comando&lt;/span&gt;
&lt;span class="kd"&gt;while&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A execução de um comando &lt;code&gt;fazer-enquanto&lt;/code&gt; segue os seguintes passos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;O &lt;em&gt;comando&lt;/em&gt; é executado.&lt;/li&gt;
&lt;li&gt;A &lt;em&gt;condição&lt;/em&gt; é avaliada.&lt;/li&gt;
&lt;li&gt;Caso o resultado seja &lt;code&gt;não&lt;/code&gt; (falso), o comando &lt;code&gt;fazer-enquanto&lt;/code&gt; termina, e a execução do programa prossegue com o comando seguinte ao comando &lt;code&gt;fazer-enquanto&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Caso o resultado da avaliação da condição seja &lt;code&gt;sim&lt;/code&gt; (verdadeiro), o ciclo recomeça com o passo 1.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nestes dois comandos e no outro comando repetitivo – o comando &lt;code&gt;para&lt;/code&gt; (em inglês, &lt;code&gt;for&lt;/code&gt;) –, cada execução do comando repetido é chamada de uma &lt;strong&gt;iteração&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A diferença entre os dois é que, no comando &lt;code&gt;enquanto&lt;/code&gt;, a avaliação da condição é feita no &lt;strong&gt;início&lt;/strong&gt; de cada iteração. Dessa forma, pode acontecer de o &lt;em&gt;comando&lt;/em&gt; não ser executado nenhuma vez.&lt;/p&gt;

&lt;p&gt;Já no comando &lt;code&gt;fazer-enquanto&lt;/code&gt;, a &lt;em&gt;condição&lt;/em&gt; é avaliada &lt;strong&gt;no final&lt;/strong&gt; de cada iteração. Assim, o comando sempre é executado &lt;strong&gt;pelo menos uma vez&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A rigor, a &lt;em&gt;condição&lt;/em&gt; que aparece na sintaxe desses dois comandos corresponde a uma &lt;em&gt;expressão&lt;/em&gt;. Avaliar a &lt;em&gt;condição&lt;/em&gt; significa avaliar a &lt;em&gt;expressão&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;expressão&lt;/em&gt; pode ser de vários tipos. O resultado da avaliação é convertido para o tipo &lt;em&gt;lógico&lt;/em&gt; (&lt;em&gt;boolean&lt;/em&gt;), conforme indicado na tabela abaixo.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tipo da expressão&lt;/th&gt;
&lt;th&gt;Resultado&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Indefinido&lt;/td&gt;
&lt;td&gt;&lt;code&gt;não&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nulo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;não&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Número&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;não&lt;/code&gt;, se 0 ou Inválido (NaN); caso contrário, &lt;code&gt;sim&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Texto&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;não&lt;/code&gt;, se texto vazio (tamanho 0); caso contrário, &lt;code&gt;sim&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Símbolo&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sim&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Objeto&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sim&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lógico&lt;/td&gt;
&lt;td&gt;Resultado é a própria &lt;em&gt;expressão&lt;/em&gt;/&lt;em&gt;condição&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;O resultado dessa conversão para o tipo &lt;em&gt;lógico&lt;/em&gt;, indicado na tabela acima, determina então o comportamento do comando repetitivo, conforme descrevemos acima.&lt;/p&gt;

&lt;p&gt;Esta mesma regra de conversão vale também para a condição que é verificada no comando &lt;code&gt;se&lt;/code&gt; (&lt;code&gt;if&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Por último, uma observação prática: na nossa experiência, o comando &lt;code&gt;enquanto&lt;/code&gt; é naturalmente bem mais usado do que o &lt;code&gt;fazer-enquanto&lt;/code&gt;. Também na nossa experiência o comando &lt;code&gt;para&lt;/code&gt; é naturalmente mais usado do que o &lt;code&gt;enquanto&lt;/code&gt;. Em outro post vamos detalhar aspectos relacionados com as variações do comando repetitivo &lt;code&gt;para&lt;/code&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>ptbr</category>
      <category>timus</category>
    </item>
    <item>
      <title>Funções Seta (Arrow Functions)</title>
      <dc:creator>Faiçal Carvalho</dc:creator>
      <pubDate>Wed, 16 Oct 2019 13:22:07 +0000</pubDate>
      <link>https://dev.to/programe/funcoes-seta-arrow-functions-4nkb</link>
      <guid>https://dev.to/programe/funcoes-seta-arrow-functions-4nkb</guid>
      <description>&lt;h2&gt;
  
  
  Uma notação especial para definir funções
&lt;/h2&gt;

&lt;p&gt;A partir de 2015, JavaScript passou a ter as &lt;strong&gt;funções-seta&lt;/strong&gt; - em inglês, &lt;strong&gt;arrow functions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Trata-se de uma notação especial para definir funções. Nessa notação não aparece a palavra &lt;code&gt;função&lt;/code&gt;, e você não dá um nome à função. As funções-seta são anônimas.&lt;/p&gt;

&lt;p&gt;Elas são sempre usadas como &lt;em&gt;expressões&lt;/em&gt;, e podem, por exemplo, da mesma forma que as funções tradicionais, ser atribuídas a uma variável:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;max&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;n2&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="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;n1&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;n2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="kd"&gt;retornar&lt;/span&gt; &lt;span class="nx"&gt;n1&lt;/span&gt;
    &lt;span class="kd"&gt;retornar&lt;/span&gt; &lt;span class="nx"&gt;n2&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Esse exemplo mostra uma função-seta sendo atribuída a uma variável chamada &lt;code&gt;max&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A definição de uma expressão representando uma função-seta começa com a lista de parâmetros da função. Nesse exemplo, a função tem dois parâmetros - &lt;code&gt;n1&lt;/code&gt; e &lt;code&gt;n2&lt;/code&gt;. Eles aparecem entre parênteses.&lt;/p&gt;

&lt;p&gt;Em seguida, depois da lista de parâmetros, aparece a &lt;strong&gt;seta&lt;/strong&gt;. Ela é representada pelos caracteres &lt;code&gt;=&lt;/code&gt; e &lt;code&gt;&amp;gt;&lt;/code&gt;, um seguido do outro: &lt;code&gt;=&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Depois da seta, vem o bloco da função, entre chaves: &lt;code&gt;{&lt;/code&gt; e &lt;code&gt;}&lt;/code&gt;. Na definição dos comandos da função, não há restrições nem diferenças entre uma função-seta e uma função tradicional.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Há um detalhe: nos comandos de uma função-seta, a referência ao identificador &lt;code&gt;este&lt;/code&gt; - em inglês, &lt;code&gt;this&lt;/code&gt; - é tratada de forma especial, diferente da forma como essa referência é tratada numa função regular. Mas isso é outro assunto, sobre o qual trataremos em outra oportunidade.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Caso a função tenha apenas um parâmetro, os parênteses do início podem ser omitidos. Por exemplo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;duplicar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;retornar&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&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, a função-seta está sendo atribuída a uma variável &lt;code&gt;duplicar&lt;/code&gt;. Observe que o parâmetro &lt;code&gt;n&lt;/code&gt; não aparece entre parênteses.&lt;/p&gt;

&lt;p&gt;Uma função-seta pode também não ter parâmetros. Nesse caso, é necessário começar a definição com uma lista de parâmetros vazia, &lt;code&gt;()&lt;/code&gt;. Por exemplo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;jogarDado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;retornar&lt;/span&gt; &lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;piso&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;aleatório&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Quando o código da função-seta consiste apenas em retornar o resultado de uma expressão, a notação pode ficar ainda mais concisa, sem a necessidade do abre e fecha chave. Basta colocar diretamente após a seta a expressão retornada. Por exemplo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;duplicar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Nesse exemplo, a função-seta tem um parâmetro, &lt;code&gt;n&lt;/code&gt;, e retorna o resultado da expressão &lt;code&gt;n * 2&lt;/code&gt;. Funcionalmente, essa implementação da função &lt;code&gt;duplicar&lt;/code&gt; é exatamente igual à anterior, que usa o bloco entre chaves e o comando &lt;code&gt;retornar&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;O objetivo dessa notação é justamente esse: permitir a definição de funções de forma concisa.&lt;/p&gt;

&lt;p&gt;A aplicação das funções-seta é bem expressiva, por exemplo, quando usada nos métodos associados às listas. Vários deles recebem como argumento uma função que é chamada para cada elemento da lista. Usar uma função-seta como argumento desses métodos possibilita notações interessantes.&lt;/p&gt;

&lt;p&gt;Vamos ver alguns exemplos. Vamos tomar como base a seguinte lista:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;carros&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;marca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Renault'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;modelo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Kwid'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;câmbio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'automático'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;marca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Fiat'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;modelo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Mobi Evo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;câmbio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'manual'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;marca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Chevrolet'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;modelo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Onix'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;câmbio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'manual'&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;&lt;code&gt;carros&lt;/code&gt; é, portanto, uma lista de objetos, cada um contendo as propriedades &lt;code&gt;marca&lt;/code&gt;, &lt;code&gt;modelo&lt;/code&gt; e &lt;code&gt;câmbio&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Vamos mostrar, então, uma forma de usar, por exemplo, o método &lt;code&gt;encontrar&lt;/code&gt;, que pode ser usado em listas. Nesse caso, vamos usá-lo para obter o primeiro carro da lista que tem câmbio manual.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;câmbioManual&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;carros&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;encontrar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;carro&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;carro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;câmbio&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'manual'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  câmbioManual = { marca: "Fiat", modelo: "Mobi Evo", câmbio: "manual" }&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;A função &lt;code&gt;encontrar&lt;/code&gt; recebe como argumento uma função que retorna &lt;code&gt;sim&lt;/code&gt; ou &lt;code&gt;não&lt;/code&gt;. Essa função é chamada para cada elemento da lista. Nesse exemplo, cada elemento fica representado pelo parâmetro &lt;code&gt;carro&lt;/code&gt;. Quem chama essa função repetidas vezes é o mecanismo interno da função encontrar.&lt;/p&gt;

&lt;p&gt;Assim que a função-seta retornar &lt;code&gt;sim&lt;/code&gt; (ou &lt;code&gt;verdadeiro&lt;/code&gt;), a função &lt;code&gt;encontrar&lt;/code&gt; termina imediatamente, e retorna o valor do elemento da lista para o qual a função retornou &lt;code&gt;sim&lt;/code&gt;. No nosso exemplo, esse valor está sendo atribuído à variável &lt;code&gt;câmbioManual&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Outro exemplo: com base nessa lista carros, vamos criar uma nova lista, na qual cada elemento será o texto correspondente ao modelo do carro. Para isso, a melhor alternativa é usar o método &lt;code&gt;mapear&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;modelos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;carros&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;mapear&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;carro&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;carro&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;modelo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  modelos = ["kwid", "Mobi Evo", "Onix"]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;O método &lt;code&gt;mapear&lt;/code&gt; retorna uma nova lista. Para cada elemento da lista original, a nova lista terá um elemento cujo valor - de acorodo com o código desse exemplo - corresponde ao texto com a propriedade &lt;code&gt;modelo&lt;/code&gt; de cada carro.&lt;/p&gt;

&lt;p&gt;Na classe &lt;code&gt;Lista&lt;/code&gt; - em inglês &lt;code&gt;Array&lt;/code&gt; -, há vários outros métodos semelhantes a esses. Em outra oportunidade vamos tratar desse assunto com mais detalhes. O objetivo hoje foi introduzir essa notação especial para definir funções como &lt;strong&gt;funções-seta&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>ptbr</category>
      <category>timus</category>
    </item>
    <item>
      <title>Qual o preço da pressa?</title>
      <dc:creator>Faiçal Carvalho</dc:creator>
      <pubDate>Tue, 15 Oct 2019 20:49:15 +0000</pubDate>
      <link>https://dev.to/programe/qual-o-preco-da-pressa-100j</link>
      <guid>https://dev.to/programe/qual-o-preco-da-pressa-100j</guid>
      <description>&lt;h2&gt;
  
  
  Legibilidade e estilo em JavaScript
&lt;/h2&gt;

&lt;p&gt;Uma das principais características de um programa é a sua legibilidade.&lt;/p&gt;

&lt;p&gt;Mas, o que é legibilidade?&lt;/p&gt;

&lt;p&gt;No contexto da programação, a legibilidade é o grau de facilidade com que a gente consegue ler o programa. Ou seja, o quanto o programa é legível, de fácil entendimento.&lt;/p&gt;

&lt;p&gt;Quem executa o programa é o computador. Para o computador, a forma como o programa está escrito não importa. O computador simplesmente não considera a legibilidade. É algo que ele ignora completamente. “Legibilidade é coisa de humanos”, ele deve pensar…&lt;/p&gt;

&lt;p&gt;Então, porque estamos falando de legibilidade? A legibilidade tem importância? Se a legibilidade tem alguma importância, para quem ela é importante? Quem se importa com a legibilidade?&lt;/p&gt;

&lt;p&gt;Os programas são escritos por nós, seres humanos, correto? (Na imensa maioria dos casos, sim, isso é verdade. Mas há também programas cuja execução resulta na geração de outros programas. Na área de testes de sistemas, acontece muito isso de um programa gerar um ou vários programas de teste... mas isso é outra história.)&lt;/p&gt;

&lt;p&gt;Retomando: os programas são escritos por nós, seres humanos. É uma realidade. Mas é muito importante a gente ter presente uma realidade que vem na sequência dessa: além de escritos por nós, os programas precisam também ser lidos por nós. É aí então que entra a legibilidade.&lt;/p&gt;

&lt;p&gt;Por qual motivo eles precisam ser lidos?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nós temos de pensar o seguinte: Criar um programa é algo que ocorre só uma vez. Porém, na prática, todo programa, depois de criado, precisa ser mantido.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Porque ele precisa ser mantido? As principais causas são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Para corrigir algum problema que tenha sido detectado (manutenção corretiva).&lt;/li&gt;
&lt;li&gt;Para acrescentar uma nova funcionalidade (manutenção evolutiva).&lt;/li&gt;
&lt;li&gt;Para adaptar o código a alguma mudança no ambiente externo – por exemplo, mudanças na legislação (manutenção adaptativa).&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;A necessidade de dar manutenção em um programa é MUITO mais frequente do que a de criar um programa do zero. Por essa razão, a facilidade com que um programa pode ser mantido – isto é, sua manutenibilidade – é superimportante.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Na hora de dar manutenção, a legibilidade é fundamental.&lt;/p&gt;

&lt;p&gt;Frequentemente, quem programa costuma sofrer pressões – as empresas costumam ser implacáveis na cobrança por uma solução rápida. A pressa faz com que alguns cuidados – sobretudo os relacionados com a legibilidade – não sejam considerados.&lt;/p&gt;

&lt;p&gt;Mais tarde, vêm as consequências.&lt;/p&gt;

&lt;p&gt;Para alterar um trecho de código, você precisa saber o que está fazendo. Para isso, você precisa ler e entender – e é aí que a gente conclui que a legibilidade tem uma importância capital. Sem trocadilho.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Legibilidade === $$$&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Se, na hora de dar manutenção, você demorar muito para entender o programa por falta de legibilidade, isso certamente vai implicar em custos para a empresa.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vamos ver agora algumas características que configuram a legibilidade de um programa.&lt;/p&gt;

&lt;p&gt;Nos exemplos de código que vamos mostrar, estamos usando uma forma similar à apresentada no livro “The Practice of Programming” (“A Prática da Programação”), de Kernighan e Pike. O código que consideramos inadequado ou questionável é precedido pelo comentário "&lt;strong&gt;// ???&lt;/strong&gt;".&lt;/p&gt;

&lt;p&gt;É bom esclarecer que algumas questões que afetam a legibilidade são questões de &lt;strong&gt;estilo&lt;/strong&gt;. Entra nisso, em alguns casos, o gosto pessoal.&lt;/p&gt;

&lt;p&gt;Em várias situações, no entanto, sobretudo para quem está começando a programar, o mais prudente é seguir atentamente as recomendações. Depois, com o tempo, aos poucos vão surgindo naturalmente as escolhas pessoais.&lt;/p&gt;

&lt;h3&gt;
  
  
  Espaços em branco
&lt;/h3&gt;

&lt;p&gt;Vamos começar com o uso de espaços em branco no código. Isso influi muito na legibilidade. Compare esses dois trechos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;clicouFora&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;Y1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;X1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Y1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;clicouFora&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Y1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;DX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;||&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Y1&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;DY&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Mesmo sem saber do que trata o código acima, a primeira forma é bem mais clara, bem mais legível que a segunda.&lt;/p&gt;

&lt;p&gt;Aqui vai uma primeira regra: Deixe sempre um espaço em branco em ambos os lados de todos os operadores binários (operadores que têm dois operandos, um de cada lado).&lt;/p&gt;

&lt;p&gt;Isso vale para os operadores de atribuição:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;X1&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nx"&gt;X2&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;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;X2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&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;//  ???&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;X1&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="nx"&gt;X2&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;x&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;X2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Vale também para os operadores de comparação:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt;&lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para os operadores aritméticos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;número&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;vabM&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;potência&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;vabM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;potência&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;vabM&lt;/span&gt;&lt;span class="p"&gt;,&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;número&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;raiz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="nx"&gt;número&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;número&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nx"&gt;vabM&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;potência&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;vabM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;potência&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;vabM&lt;/span&gt;&lt;span class="p"&gt;,&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;número&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;Mat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;raiz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="nx"&gt;número&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para os operadores lógicos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;X1&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;X2&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Y1&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;Y2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;X2&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Y1&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Y2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Vale também para o operador ternário:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;X1&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;X2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;X1&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;X2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;No caso dos operadores unários, consideramos mais adequado não deixar um espaço em branco. Por exemplo, depois do operador ! (negação):&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;iniciou&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;iniciar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="nx"&gt;iniciou&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;iniciar&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;Da mesma forma, operadores de incremento ++ ou decremento -- também não devem ter um branco entre eles e o operando:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="nx"&gt;n&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="nx"&gt;n&lt;/span&gt; &lt;span class="o"&gt;++&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;O espaço em branco é importante também no uso dos comandos. Deixe sempre um espaço em branco após a palavra chave dos comandos:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;enquanto&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;enquanto&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;para&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="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="nx"&gt;tam&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="nx"&gt;lista&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="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;nulo&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;para&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="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="nx"&gt;tam&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="nx"&gt;lista&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="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;nulo&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Mudanças de linha
&lt;/h3&gt;

&lt;p&gt;A mudança de linha é outro aspecto que influi muito na legibilidade. Muitos comandos possuem um ou mais comandos subordinados. Eles devem ser posicionados na próxima linha:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;enquanto&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;enquanto&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="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;para&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="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="nx"&gt;tam&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="nx"&gt;lista&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="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;nulo&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;para&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="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="nx"&gt;tam&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="nx"&gt;lista&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="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;nulo&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Indentação
&lt;/h3&gt;

&lt;p&gt;A indentação é a forma de posicionar os comandos nas linhas, sobretudo considerando a distância em relação à margem esquerda e a subordinação entre comandos. Sem que tenhamos mencionado, quase todos os exemplos que temos dado incluem aspectos relacionados com a indentação.&lt;/p&gt;

&lt;p&gt;Nós adotamos a indentação com &lt;strong&gt;4&lt;/strong&gt; caracteres. Isto significa que os níveis de tabulação do código avançam de 4 em 4 caracteres.&lt;/p&gt;

&lt;p&gt;É muito comum você encontrar código em JavaScript adotando indentação com 2 caracteres. Nós preferimos 4.&lt;/p&gt;

&lt;p&gt;Conforme você já deve ter observado, o comando subordinado deve ser posicionado com um nível a mais de indentação:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&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="kd"&gt;enquanto&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&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="kd"&gt;enquanto&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Indentação na declaração de uma função
&lt;/h3&gt;

&lt;p&gt;Na declaração de uma função você deve também estar atento a alguns detalhes importantes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A palavra função e o nome da função devem ser colocados na mesma linha, separados por um espaço em branco.&lt;/li&gt;
&lt;li&gt;Entre o nome da função e o abre parêntese da lista de parâmetros &lt;strong&gt;não deve&lt;/strong&gt; haver um espaço em branco.&lt;/li&gt;
&lt;li&gt;Os parâmetros entre parênteses devem estar separados por vírgula, cada uma seguida de um espaço em branco.&lt;/li&gt;
&lt;li&gt;Entre o último parâmetro e o fecha parêntese &lt;strong&gt;não deve&lt;/strong&gt; haver um espaço em branco.&lt;/li&gt;
&lt;li&gt;Entre o fecha parêntese da lista de parâmetros e o abre chave do bloco de comandos da função &lt;strong&gt;deve&lt;/strong&gt; ser colocado um espaço em branco.&lt;/li&gt;
&lt;li&gt;Os comandos da função devem ser posicionados um nível de indentação acima do que está a palavra &lt;strong&gt;função&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;O caractere fecha chave ao final da função deve ficar numa linha isolada, e deve ser posicionado no mesmo nível de indentação da palavra &lt;strong&gt;função&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O exemplo abaixo ilustra todos esses aspectos.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;função&lt;/span&gt; &lt;span class="nx"&gt;comparar&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;b&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;retornar&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;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;função&lt;/span&gt; &lt;span class="nx"&gt;comparar&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;b&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;retornar&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;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Chamada a uma função
&lt;/h3&gt;

&lt;p&gt;Na chamada a uma função, não deve haver um espaço em branco entre o nome da função e o abre parêntese:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;comparar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;comparar&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;comparar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;seja&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;comparar&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Na lista de argumentos usados na chamada, que aparece obrigatoriamente entre parênteses, não deve haver um espaço em branco após o abre parêntese nem antes do fecha parêntese.&lt;/p&gt;

&lt;h3&gt;
  
  
  Posicionamento das chaves
&lt;/h3&gt;

&lt;p&gt;De uma maneira geral, as chaves que delimitam blocos de comandos devem seguir o mesmo modelo que usamos no bloco de comandos de uma função, isto é, o abre chave na mesma linha do início do comando, e o fecha chave numa linha isolada. Assim, por exemplo, para um comando &lt;strong&gt;se&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&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;a&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
    &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&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;a&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
    &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&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;a&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
    &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Isso vale para todos os comandos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use o bloco (abre/fecha chaves) somente se necessário
&lt;/h3&gt;

&lt;p&gt;Quando o comando subordinado é constituído de apenas um comando, não use as chaves que delimitam um bloco. Por exemplo:&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&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="nx"&gt;a&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
&lt;span class="kd"&gt;senão&lt;/span&gt;
    &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&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;a&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kd"&gt;senão&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Esta é outra recomendação polêmica. Muitos preferem sempre usar as chaves, independentemente do número de comandos. Nós não. Se na parte subordinada há apenas um comando, o bloco entre chaves não deve ser usado.&lt;/p&gt;

&lt;p&gt;O exemplo abaixo ilustra isso.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascriptbr"&gt;&lt;code&gt;&lt;span class="c1"&gt;//  OK&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'*'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nx"&gt;op&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;MULT&lt;/span&gt;
&lt;span class="kd"&gt;senão&lt;/span&gt;
    &lt;span class="nx"&gt;op&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;SOMA&lt;/span&gt;
&lt;span class="kd"&gt;senão&lt;/span&gt;
    &lt;span class="nx"&gt;opInválido&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;//  ???&lt;/span&gt;
&lt;span class="kd"&gt;se&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&gt;'*'&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;c&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="s1"&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;op&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;MULT&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kd"&gt;senão&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;op&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;SOMA&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kd"&gt;senão&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;opInválido&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;c&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Indentação do comando se com cláusula senão
&lt;/h3&gt;

&lt;p&gt;A indentação do comando se com a cláusula senão também apresenta algumas peculiaridades. Sua forma mais simples é a seguinte:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--67egHHCg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/d493mm3v5qazuk9o0yda.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--67egHHCg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/d493mm3v5qazuk9o0yda.png" alt="Comando se com a cláusula senão em JavaScript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para os casos em que há múltiplas cláusulas senão seguidas, a forma mais adequada é a seguinte:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C38cdXvn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6c4v5y8wdct673eg16in.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C38cdXvn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6c4v5y8wdct673eg16in.png" alt="Comando se com múltiplas cláusulas senão em JavaScript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Indentação do comando escolher
&lt;/h3&gt;

&lt;p&gt;O comando escolher possui características especiais em sua indentação. Indicamos a seguinte:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dmDaEoIw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zb7zmae7p2qqihxzwvo2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dmDaEoIw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/zb7zmae7p2qqihxzwvo2.png" alt="O comando escolher em JavaScript"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Algumas variações são bem razoáveis. Por exemplo, a de alinhar a indentação dos casos no mesmo nível do comando escolher:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hP0mlQEa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/xn4rb9bp7j2pirvmn8f0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hP0mlQEa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/xn4rb9bp7j2pirvmn8f0.png" alt="O comando escolher em JavaScript com indentação no mesmo nível do comando"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É importante observar que os comandos dentro de cada caso sempre ficam alinhados um nível a mais que as palavras caso. Também como mostram os exemplos acima, indicamos colocar uma linha em branco entre os casos.&lt;/p&gt;

&lt;h3&gt;
  
  
  Nomes
&lt;/h3&gt;

&lt;p&gt;Conforme já vimos em outro vídeo/post, dar um nome aos itens que compõem um programa é algo que deve ser feito com muito cuidado e atenção.&lt;/p&gt;

&lt;p&gt;Veremos a seguir algumas regras que consideramos como critérios que devem ser levados em conta nesse aspecto.&lt;/p&gt;

&lt;h4&gt;
  
  
  O tamanho do nome depende do contexto
&lt;/h4&gt;

&lt;p&gt;Nomes de coisas exportadas devem ser mais descritivos. Nomes locais devem ser pequenos.&lt;/p&gt;

&lt;p&gt;Você pode, por exemplo, exportar funções e variáveis com nomes como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;exibirMapa&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;inserirElemento&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;alterarPerfilDeUsuário&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;numClientes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;suprimirConta&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;maxQtdLivros&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ModeloPadrão&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Portanto, são nomes mais descritivos. Mas, não é conveniente exagerar. Aqui estão alguns nomes que certamente poderiam ser melhorados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;númeroDeAlunosAbaixoDaMédia&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ElementoDaInterfaceGráficaDeUsuário&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;notaMínimaParaPassarDeAno&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para uma variável de controle de um loop, a melhor escolha é quase sempre &lt;code&gt;i&lt;/code&gt;. Se, por algum motivo, não puder ser &lt;code&gt;i&lt;/code&gt;, que seja &lt;code&gt;j&lt;/code&gt;, &lt;code&gt;k&lt;/code&gt; ou &lt;code&gt;ind&lt;/code&gt; ou algo similar, com poucos caracteres.&lt;/p&gt;

&lt;p&gt;No trecho a seguir, inspirado no livro já citado “The Practice of Programming” (“A Prática da Programação”) de Kernighan e Pike, você vê um exemplo que demonstra claramente a vantagem do uso de variáveis locais com nomes pequenos:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Dsm4S9Ou--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/d850w5qfkycu7x7a8vpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Dsm4S9Ou--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/d850w5qfkycu7x7a8vpc.png" alt="Dois exemplos do uso de variáveis de controle. O primeiro utiliza nomes pequenos, conforme indicado, e o segundo nomes grandes."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Compare os dois trechos acima e veja qual você considera o mais legível.&lt;/p&gt;

&lt;h4&gt;
  
  
  Propriedades de um objeto não devem repetir o nome do objeto
&lt;/h4&gt;

&lt;p&gt;Como as propriedades de um objeto são geralmente referenciadas por meio de uma variável que representa o objeto, não é necessário que elas também contenham, em seus nomes, outra referência ao próprio objeto. Exemplo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NGD3KplQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/832zdvs5z9qrjbnhu98n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NGD3KplQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/832zdvs5z9qrjbnhu98n.png" alt="Declaração de dois objetos em JavaScript. A primeira com o nome de propriedades sem repetir o nome do objeto. A segunda repetindo o nome do objeto no nome das propriedades."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Algumas convenções
&lt;/h4&gt;

&lt;p&gt;Nome de funções construtoras devem ter a primeira letra em maiúscula. Quando houver mais de um termo, cada um também deve ter a sua inicial em maiúscula. Exemplos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Lista&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Usuário&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ElementoGráfico&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nome de variáveis, de funções (não usadas como construtoras) e de parâmetros de funções devem ter a primeira letra em minúscula. Quando houver mais de um termo, cada um deve ter a sua inicial em maiúscula. Exemplos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;i&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;temp&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pesquisarControles&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;últimoElemento&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;conectarPontosOpostos&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É também usual a convenção de usar nomes de constantes com todas as letras em maiúsculas:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PNxyZVV0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/9lxmmw3hdopak5plo6do.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PNxyZVV0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/9lxmmw3hdopak5plo6do.png" alt="Declaração de constantes em JavaScript utilizando letras maiúsculas nos nomes."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta é uma tradição herdada da linguagem C. Apesar de antiga, é uma convenção que contribui com a legibilidade.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>ptbr</category>
      <category>timus</category>
    </item>
  </channel>
</rss>
