Oi, Lucas! Tudo bem?
A resposta é aquela mesma do Felipe Nascimento. Mas gostaria de colocar algumas observações que ficaram implícitas.
Existe um conceito comum em diversas linguagens de programação que é o escopo. Tal que, a visibilidade ou o acesso de trechos de código é disponível apenas dentro do escopo desses.
Em JS, o que define o escopo de uma variável é o local onde esta é declarada. Se declarada em uma função, ficará visível apenas em seu escopo, isto é, dentro desta função. Se declarada em uma função interna, ficará visível apenas na função interna. Se declarada fora da função, ficará visível para todas as funções.
Existe uma peculiaridade, as variáveis globais implícitas em Javascript. Recomendo pesquisar sobre.
Veja esta página: https://medium.com/weyes/entendendo-o-uso-de-escopo-no-javascript-3669172ca5ba. Achei bem explicativa.
É isto aí! Algumas linguagens definem algumas características específicas sobre a delimitação de seu escopo, tais como em C, Java, PHP ou Python. Mas a ideia geral é a mesma, a visibilidade das variáveis (ou outras entidades, como: funções, métodos, objetos etc.) no código.