Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Dúvida lista

Boa noite! Tive uma dúvida referente ao código abaixo. Qual a diferença entre os dois códigos? No caso, o que muda quando utilizo o let? Fiz de ambas as formas e visualmente não vi diferença, consegui extrair a lista através do índice do esmo jeito.

let palavras = ["Dia", "programar", "javascript", "de"]


palavras = ["Dia", "programar", "javascript", "de"]
4 respostas

Olá Logan, tudo joia?

Nesse caso, a diferença estaria para qual finalidade essa variável terá, por exemplo, quando criamos uma variável e antes dela declaramos o let estamos dizendo que essa variável apenas vai existir no "bloco" que ela pertence, ou seja, se você estiver criado ela dentro de uma função, estrutura de repetição ou de condição, ela vai existir apenas dentro desta estrutura.

Então, esse tipo de declaração feita antes da variável, é realizada por uma questão de organização do seu projeto de código, e além da declaração let temos, var e const. No exemplo de código abaixo você poderá perceber que mesmo que tenha sido criado variáveis iguais as mesmas se encontram em blocos diferentes, e no momento que é executado o console.log() as saídas apresentadas serão diferentes, referentes ao valor definido para cada variável em diferentes blocos.

let x = 1;

if (x === 1) {
  let x = 2;

  console.log(x);
  // Saída esperada: 2
}

console.log(x);
// Saída esperada: 1

Contudo, caso queira entender um pouco mais sobre essas declarações, vou estar deixando um link da documentação oficial do JavaScript, onde é falado mais detalhadamente sobre.

Espero que eu tenha lhe ajudado de alguma forma, caso tenha mais dúvidas, estarei à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Perfeito Armano, obrigado pela explicação consegui entender perfeitamente. Porém, minha dúvida principal é referente ao let nesse código específico, entendi a diferença do let pro vaor ou const por exemplo, mas qual seria a diferença de não declarar nenhuma variável como mostra no segundo código que anexei? O meu principal ponto é entender o que resultaria o let e o também sem o let, pois pelo que entendi pra criar uma lista você não precisa criar uma variável, mas caso minha lista seja declarada como variável o que muda? Espero que tenha entendido

solução!

Boa tarde Logan.

Entendi a sua dúvida, desde já peço desculpa por não ter sido tão pontual nessa questão.

Para a sua pergunta: "Mas qual seria a diferença de não declarar nenhuma variável como mostra no segundo código que anexei?" a diferença seria que, quando declaramos o let antes da variável, você apenas poderá utilizá-la dentro do "bloco" onde foi criada, e caso você não declare nada, essa variável vai ser acessível em todo o seu código, abaixo segue um exemplo.

for (let i = 0; i < 2; i++) {
    let palavras = ["Dia", "programar", "javascript", "de"]
    console.log(palavras)
}

console.log(palavras)

Ao executar esse código, a estrutura de repetição for vai fazer com que o console.log, localizado dentro dela, mostre a lista de palavras duas vezes, porém, quando o código tenta rodar o outro console.log, localizado fora da estrutura de repetição, aparece um erro que diz que a variável não foi definida, pois como foi definida dentro do bloco for, ela existe apenas nele.

Caso essa variável tivesse sida criada sem a declaração do let no início, o erro não aconteceria, pois ela não seria considerada uma variável de bloco e sim global, dessa forma, podendo ser utilizada em qualquer lugar do código.

Com base em tudo o que comentei, podemos concluir que a utilização ou não do let no caso que você apresentou não vai afetar o seu programa, entretanto, no mundo da programação existem o termo "boas práticas da programação", que nada mais é do que um conjunto de instruções e formatações que devem ser seguidas para que o seu programa seja de boa qualidade, e usar as declarações no JavaScript entra nessa boas práticas.

Espero que eu tenha conseguido esclarecer os seus pontos de dúvidas, e retorno a dizer que, se ainda tiver dúvidas em relação a este tópico, estarei à disposição. Abraços e bons estudos!

Boa tarde Armando.

Consegui entender perfeitamente após sua explicação e na madrugada de ontem por ter passado um perrengue no meu projeto, não conseguia puxar as imagens carregadas de uma lista pra um outro arquivo .js e automaticamente um outro bloco, nisso visualizei que minha lista estava declarada com let e aí entendi a questão do mesmo bloco, somando isso com sua explicação, entendi 100%, muito obrigado!