a const é usada quando sua variável não vai sofrer nenhuma alteração, como o próprio nome sugere, ele é constante.
a var e a let tem um comportamento bem semelhante, com uma diferença crucial, vou te explicar melhor com esse exemplo abaixo:
{
var nome = 'Joana';
let idade = 19
}
nesse exemplo, o let permanece apenas nesse escopo, ou seja, ele só existe dentro do objeto!
já a var, ela sofre o que chamamos de hoisting. o javascript por debaixo dos panos, eleva as var do código para o começo do arquivo. Faz o teste pra você ver o resultado agora:
console.log(nome)
console.log(idade)
{
var nome = 'Joana';
let idade = 19
}
nesse outro exemplo, a var nome vai aparecer no console como undefined, porque é como se no começo do código estivesse escrito: "var nome". Ou seja, o JS eleva sua variável para o escopo global mas sem o valor que você atribuiu.
ja a let vai dar um erro de referência (Uncaught ReferenceError: idade is not defined ) pois ele n sofre a elevação.
Para entender mais a fundo, te recomendo pesquisar sobre scope e hoisting, vai ficar bem mais claro! :)
ah, e é uma boa prática usar o let, o var é mais propício a causar erros na aplicação
espero ter ajudado :D