DEV Community

Discussion on: [PT-BR] Variáveis no Javascript: var, let e const em cinco minutos.

Collapse
eduardoklosowski profile image
Eduardo Klosowski • Edited on

Eu não posso dizer se consegui entender os conceitos por já conhece-los, mas está bem descrito.

Uma coisa a acrescentar é que é possível usar variáveis sem usar var, let ou const, que nesse caso seriam criadas no escopo global, como:

function teste() {
    a = 10;
    console.log(b);
    if (a > 5) {
        var b = 20;
    }
}

teste();
console.log(a);
Enter fullscreen mode Exit fullscreen mode

Onde o código a cima imprime 10 no console.log da variável a, e para evitar problemas, é importando usar var, let ou const.

Outra coisa interessante a olhar é o console.log da variável b, que em vez de dar ReferenceError, pela variável não ter sido declarada ainda, o js executa primeiro a instrução para criar a variável, e só depois executa o código da função, algo como:

function teste() {
    var b;
    a = 10;
    console.log(b);
    if (a > 5) {
        b = 20;
    }
}
Enter fullscreen mode Exit fullscreen mode

E por esse motivo é impresso undefined nesse caso.

Ainda nesse assunto, existem as closures que trabalham com os escopos para criar variáveis que não podem mais ser sobrescritas, mesmo elas não sendo constantes.