Escopo da Variável

Quando você escreve uma variável em JavaScript, ela pode ter um escopo, o que significa que pode ser acessada em diferentes partes do seu código. O escopo de uma variável determina onde essa variável é acessível ou visível em seu código.

Existem dois tipos de escopo em JavaScript: escopo global e escopo local.

Escopo global

Escopo global significa que a variável é definida fora de qualquer função e pode ser acessada em qualquer lugar em seu código, inclusive dentro de funções. Escopo local significa que a variável é definida dentro de uma função e só pode ser acessada dentro dessa função.

Aqui está um exemplo de escopo global:

Loading Code . . .

Como você pode ver, a variável meuNome é definida fora da função digaMeuNome(), mas ainda pode ser acessada dentro da função.

Escopo local

Agora vamos dar uma olhada em um exemplo de escopo local:

Loading Code . . .

Neste exemplo, a variável meuNome é definida dentro da função digaMeuNome(), portanto ela só pode ser acessada dentro dessa função. Se você tentar acessá-lo fora da função, receberá um ReferenceError (erro de referência).

Quando podemos acessar uma variável?

Basicamente, uma variável pode ser acessada quando está no mesmo escopo do código que está tentando acessá-la. Se a variável estiver em um escopo diferente, ela não poderá ser acessada.

Cada função cria um novo escopo, portanto, as variáveis definidas dentro de uma função não podem ser acessadas fora dessa função. Mas dentro dessa função, você pode acessar variáveis definidas fora dela.

Loading Code . . .

Você pode pensar o escopo como casas. Quem está dentro de casa pode ver quem está fora, mas quem está fora não pode ver quem está dentro.

Cuidado!

Uma boa prática é sempre declarar suas variáveis no escopo local, e não no escopo global. Isso ocorre porque se você declarar uma variável no escopo global, ela poderá ser acessada por qualquer outro código em seu programa, o que pode causar um comportamento inesperado.

Se uma função precisa acessar uma variável, é melhor passar essa variável como um parâmetro para a função, em vez de declará-la no escopo global.


Uma variável definida dentro de um bloco pode ser acessada fora desse bloco?

© 2024 - ®Mewters