1
resposta

Variáveis existentes

Olá pessoal! Como vão? Tenho pouca experiência com desenvolvimento web e tive um caso intrigante com a criação de um outro arquivo de script. Quando estamos desenvolvendo pro backend usando node tudo que é escrito em um modulo é privado até que este seja compartilhado, ou seja, escrito em um nível global usando global<nome_da_propriedade>= () => "Vc passou aqui";, ou com os famosos this, exports e module.exports. Porém, mesmo com as minhas variáveis sendo declaradas com const (const possui escopo de bloco etc) quando eu declarei uma outra função com o mesmo nome no outro arquivo ela apontava que aquele nome já existia. Na hora tomei um choque pq eu pensei... "Poxa... não declarei em momento nenhum que essas váriaveis poderiam se enxergar." Mas ai parei e pensei... isso deve ter acontecido pois no html eu disse <script src="./index.js"> e <script ="./form.js">. Bom então vou usar a função que está no outro arquivo já que ele reconhece a criação delas. Poderiam por gentileza me esclarecer qual o comportamento padrão de declaração de escopo de variaveis que estão em arquivos diferentes mas que estão sendo compartilhadas?

1 resposta

Fala ai Gabriel, tudo bem? Vamos lá:

Poderiam por gentileza me esclarecer qual o comportamento padrão de declaração de escopo de variaveis que estão em arquivos diferentes mas que estão sendo compartilhadas?

Na verdade toda variável criada na raiz dos arquivos index.js e form.js serão globais por padrão.

E a ordem da importação importa, ou seja, uma const criada dentro do index.js (primeiro arquivo importado) não pode ser criada dentro do arquivo form.js.

Isso porque ambas foram criadas globalmente (raiz do arquivo).

Agora se as variáveis estão sendo criadas dentro das funções, ai o escopo seria da função em si.

Espero ter ajudado.