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

Duvida nas variáveis do For

var campoFiltro = document.querySelector("#filtrar-tabela");

campoFiltro.addEventListener("input", function() {
    var pacientes = document.querySelectorAll(".paciente");

    if (this.value.length > 0) {
        for (var i = 0; i < pacientes.length; i++) {
            var paciente = pacientes[i];            
            paciente.classList.add("invisivel");    
        }
    } else {
        for (var i = 0; i < pacientes.length; i++) {
            var paciente = pacientes[i];
            paciente.classList.remove("invisivel");
        }
    }
});

Por que devemos "declarar" a variável var paciente no for e no else? Se não declararmos seria um erro? Testei no meu código, sem o "var" antes de paciente no else, e funcionou normalmente. Me parece redundante, mas imagino que seja boa prática. Correto?

2 respostas
solução!

Olá Eduardo,

tudo bom? Em Javascript quando se declara uma variável sem o var estamos definindo variáveis globais.

Outra coisa que você precisa ficar atento principalmente se vem de outras linguagens é que não existe escopo de bloco. Ou seja, uma variável definida dentro de um bloco(if/else/for/...) é visível fora dele também . Isso é bem diferente de outra linguagens e independe se usou var ou não.

Ficou claro para você?

Sobre declarar a variável duas vezes, perceba que são situações excludentes ou entra na condição e a gente pega o paciente ou não entra e também temos que pegar o paciente.

Abraços

Perfeito! Agora está claro, muito obrigado!