DEV Community

Plínio Ribeiro
Plínio Ribeiro

Posted on

4 2

Diferenças entre escopos no JavaScript

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:

var nome = "Charles"

function obterIdade() {
    var idade = 25
}

console.log(nome) // Charles
console.log(idade) // ReferenceError: idade is not defined
Enter fullscreen mode Exit fullscreen mode

A variável nome está no escopo global e a variável idade está no escopo local da função “obterIdade”.

Quando tentamos exibir o conteúdo delas, nome é exibida normalmente, porém, para idade, é retornando um erro de referência. Acusa-se que idade não foi definida.

Este erro acontece porque a variável idade 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.

var nome = "Charles"

function obterIdade() {
    var idade = 25
    console.log(nome) // Charles
    console.log(idade) // 25
}

obterIdade()
Enter fullscreen mode Exit fullscreen mode

No exemplo acima é chamada a função “obterIdade” para que seja exibido o conteúdo das variáveis nome e idade. Nesse exemplo, a variável nome é 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 de var, let e const. Em outro momento explicarei as diferenças entre essas formas de declarar uma variável, bem como o processo de hoisting.

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay