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

Uso da CONST, LET e VAR

Prezados, A constante é usada para valores fixo mas durante este curso observei que a CONST foi usada diversas vezes para valores que são alterados. Neste curso, também não percebi o uso do LET, apenas o VAR.

7 respostas

Fala Igor, tudo bem?

O que acontece, é que variáveis do tipo const não podem ser alteradas DIRETAMENTE, usando atribuição, dessa forma:

const nome = 'Mateus';

console.log(nome) //Mateus

nome = 'Igor'

console.log(nome) //Error

Porém, alguns valores como do tipo Date, podem ser alteradas de outras formas, com métodos próprios, como o setDate que altera o dia da data:

const minhaData = new Date('August 19, 1975 23:15:30');

minhaData.setDate(24); //Altera o dia da data para 24

console.log(minhaData.getDate());
// nos Retorna dizendo que o dia é 24

Como pode ver, nós conseguimos alterar o valor não diretamente, caso queira ver um pouco mais sobre variáveis do tipo const recomendo que dê uma olhada na documentação clicando aqui

Para entender sobre o restante dos tipos de variáveis, aqui na Alura temos um artigo muito interessante que explica bem a diferença entre os tipos, acesse-o clicando aqui

Espero ter ajudado, bons estudos :D

Matheus, uma CONST não pode ser alterada mas em algumas aula da Alura vejo usar const em laços , representando um valor que é alterado a cada leitura de laço.

Isso não é possivel, acredito que seja utilizado let (que é comúm em laços), poderia demonstrar um exemplo aqui da Alura?

https://github.com/alura-cursos/1823_DOM/blob/projeto_final/projeto_final/main.js

es (18 sloc) 750 Bytes
import BotaoConclui from './componentes/concluiTarefa.js'
import BotaoDeleta from './componentes/deletaTarefa.js'

    const criarTarefa = (evento) => {

    evento.preventDefault()

    const lista = document.querySelector('[data-list]')
    const input = document.querySelector('[data-form-input]')
    const valor = input.value

    const tarefa = document.createElement('li')
    tarefa.classList.add('task')
    const conteudo = `<p class="content">${valor}</p>`

    tarefa.innerHTML = conteudo

    tarefa.appendChild(BotaoConclui())
    tarefa.appendChild(BotaoDeleta())
    lista.appendChild(tarefa)
    input.value = " "

}

const novaTarefa = document.querySelector('[data-form-button]')

novaTarefa.addEventListener('click', criarTarefa)
solução!

Nesse caso não há nenhuma alteração de valor direto, em que definimos diretamente o valor:

const nome = "Mateus"

nome = "Pedro" //Erro de sintaxe

Nesse caso que você nos mandou estamos alterando o conteúdo do elemento HTML que está nessa veriável, porém a variável em sí não sofre nenhuma alteração, pois os elementos continuam os mesmos, variáveis do tipo const só previnem alterações diretas como a que eu demonstrei logo acima, recomendo dar uma olhada na documentação clicando aqui para entender mais sobre essa variável.

Abraços e bons estudos :D

const é uma variável somente leitura. Entretanto, se o valor atribuído a uma const for um objeto JavaScript ele pode ser modificado. Exemplos de objetos JS:

  • arrays;
  • expressões regulares;
  • funções;
  • objetos (do tipo Date, citado pelo Mateus Henrique, por exemplo).

Por isso, podemos modificar os valores de array armazenados em uma const, por exemplo:

const nome = ['carlos', 'felipe', 'julia'];
nome.push('fernando');

Mas se eu tentar sobrescrever o array, colocando uma string no lugar, por exemplo, vamos receber um erro do console:

nome = 'carmen';
//Uncaught TypeError: invalid assignment to const 'nome'

Você pode ler mais a respeito de const nesse post da mozilla: const.

Obrigado Matheus e Vanessa pelas explicações e dicas valiosas!