2
respostas

Diferença entre colocar ou não o ';' (ponto-e-vírgula) após o join()

Olá pessoal!

Referente por ex., ao seguinte código desta atividade:

<tbody>
    ${model.negociacoes.map(n => `

          <tr>
            <td>${DateHelper.dataParaTexto(n.data)}</td>
            <td>${n.quantidade}</td>
            <td>${n.valor}</td>
            <td>${n.volume}</td>
          </tr>

      `).join('')} // ponto-e-vírgula aqui ?
</tbody>
  • existe diferença entre colocar ou não o ; (ponto-e-vírgula) após o join (desculpa, não testei ainda porque faltam alguns vídeos antes dos exercícios em si, perguntando para não esquecer) ?

Pesquisei em fóruns sobre, um diz que é melhor pro navegador ter ; , outro diz que só é necessário se tiver outra instrução na mesma linha, etc.

Talvez a regra geral é utilizar ; e esta instrução (template string dentro de outra, com map e afins) é um caso especial, por isso gostaria da vossa opinião.

At.te

2 respostas

Olá Elias!

Nesse caso não teria diferença a utilização do ponto e virgula.

Mas é sempre recomendavel que você utilize para não haver problemas no seu código.

O ponto e virgula define o fim de uma instrução, por isso é extremamente importante utiliza-lo sempre que você possui uma cadeia de instruções para que o fim de uma não se misture com o começo de outra, entende?

Como você não tem uma instruçao abaixo da template string não tem problema omitir, mas caso venha a ter é bacana que você coloque.

Espero ter ajudado! :D

Olá Guilherme!

Ajudou sim, obrigado.

Aí que está a questão, o código acima é uma parte da classe, o código continua depois disso, com:

`
// .. código acima
//... restante das tags da template string "externa" à template acima

// essa template string "externa" (aqui é o fechamento dela) não
// seria outra instrução?
`; 

update(model) {
    // instrução abaixo da instrução da 1ª mensagem
    this._elemento.innerHTML = this._template(model);
}

Como existem instruções abaixo, a instrução da primeira mensagem não deveria ter ; (e, apesar de não ter ;, tanto aquela instrução quantos as que vem abaixo parecem executar normalmente...) ?

At.te

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software