Olá
Fiquei com uma dúvida sobre o método filter no exemplo da aula 3.
main.js
let livros = [];
const endpointDaAPI = 'https://guilhermeonrails.github.io/casadocodigo/livros.json';
getBuscaLivrosDaAPI();
async function getBuscaLivrosDaAPI(){
try{
const resposta = await fetch(endpointDaAPI);
livros = await resposta.json();
//console.table(livros);
let livrosComDesconto = aplicarDesconto(livros);
exibirLivrosNaTela(livrosComDesconto);
}catch(erro){
console.log(erro);
}
}
filter.js
const botoes = document.querySelectorAll('.btn');
botoes.forEach(btn => btn.addEventListener('click', filtrarLivros));
function filtrarLivros() {
//This significa o botão clicado, ou seja, houve um click, this.id identifica qual o botão clicado
const elementoBtn = document.getElementById(this.id);
let livrosFiltrados = livros.filter(livro => livro.categoria == elementoBtn.value);
exibirLivrosNaTela(livrosFiltrados);
}
A dúvida é a seguinte:
No filter usamos a variável livros declarada em main. Gostaria só de entender um pouco melhor sobre este escopo global que o professor menciona da variável livros.
Quando carregamos a página ela é alimentada com o json.
No momento que ela recebe os dados estes ficam salvos nesta variável e após o click em cada botão o filtro é aplicado e sucessivamente aos clicks vai filtrando.
Este array livros fica permanente na memória enquanto permanecemos nesta página e pode ser manipulado mesmo sem precisar recarregar a página para buscar os dados novamente ?
Espero ter conseguido me expressar bem na minha dúvida, pois gostaria de entender um pouco melhor sobre este escopo e sobre os dados que permanecem na variável.