Quando programamos em qualquer linguagem é importante entender conceitos da linguagem. Neste texto vou trazer de forma breve o conceito de escopos na linguagem Javascript.
O que são escopos?
Escopos diz respeito aos limites que permitem que uma variável pode ser acessada dentro do código. Ou seja, quem poderá acessar o seu conteúdo para ler ou alterar.
No Javascript temos dois escopos: o escopo global e o escopo local.
Grosso modo, o escopo global é relativo a todo o código, tem a sua acessibilidade a todo o fluxo de código, incluindo quando dentro de alguma função.
Enquanto o escopo local é aquele declarando dentro de uma função. O limite de sua acessibilidade se restringe ao contexto “{}” da função no qual foi declarado.
Vejamos um exemplo:
varnome="Charles"functionobterIdade(){varidade=25}console.log(nome)// Charlesconsole.log(idade)// ReferenceError: idade is not defined
A variávelnome está no escopo global e a variávelidade está no escopo local da função “obterIdade”.
Quando tentamos exibir o conteúdo delas,nome é exibida normalmente, porém, paraidade, é retornando um erro de referência. Acusa-se queidade não foi definida.
Este erro acontece porque a variávelidade foi definida no escopo local da função “obterIdade”, nesse contexto ela só pode ser acessada dentro do domínio local dessa função. É uma limitação à acessibilidade da variável em ralação ao código.
Vejamos um outro exemplo, em que observamos a acessibilidade de uma variável declarada no escopo local por uma função.
varnome="Charles"functionobterIdade(){varidade=25console.log(nome)// Charlesconsole.log(idade)// 25}obterIdade()
No exemplo acima é chamada a função“obterIdade” para que seja exibido o conteúdo das variáveisnome eidade. Nesse exemplo, a variávelnome é impresso mesmo que declarada fora do escopo da função em que se encontra.
Isso acontece, porque ela foi declarada no escopo local, que permite que a variável seja acessada quando no âmbito do escopo global ou local de alguma função.
Assim, quando dizemos que a variável está declarada no escopo global, significa que sua acessibilidade é para todo o código. E quando referimos ao escopo local, é que ela só acessível no contexto da função que está localizada.
Compreender o conceito de escopos é importante, pois permite tenhamos conhecimento da capacidade de acesso, mutabilidade e o controle sobre código que estamos escrevendo.
Nota que aqui me restringi apenas a tratar sobre escopos na linguagem Javascript, não me adentrei na explicação devar,let econst. Em outro momento explicarei as diferenças entre essas formas de declarar uma variável, bem como o processo dehoisting.
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse