Escopos e variáveis em javascript

Neeraj Dana Segue 15 de jul · 3 min ler

Âmbito JavaScript

O escopo é o que define o acesso a variáveis JavaScript. Em JavaScript, as variáveis podem pertencer ao escopo global ou ao escopo local. Variáveis globais são variáveis que pertencem ao escopo global e são acessíveis de qualquer lugar no programa.

Âmbito global

Em JavaScript, as variáveis podem ser declaradas sem usar nenhum operador. Aqui está um exemplo:

 teste = "Neeraj"; 
console.log (teste);
// Neeraj

No entanto, isso cria uma variável global e essa é uma das piores práticas em JavaScript. Evite fazer isso a todo custo. Sempre use var ou let para declarar variáveis. Finalmente, ao declarar variáveis que não serão modificadas, use const

Escopo Funcional

Em JavaScript, var é uma palavra-chave usada para declarar variáveis. Essas declarações de variáveis “flutuam” até o topo. Isso é conhecido como içamento variável. Variáveis declaradas na parte inferior do script não serão a última coisa executada em um programa JavaScript durante o tempo de execução.

 função func () { 
var a = "top";
b = "fundo";
console.log (b);
var b;
}
func (); // imprime "bottom" - sem erro

Como é que isso funciona? O anterior é o mesmo que escrever o seguinte:

 função func () { 
var a = "top";
var b;
b = "fundo";
console.log (b);
}
func (); // imprime "bottom" - sem erro

A declaração da variável b, que estava na última linha da função, é colocada no topo e registra a variável. A principal coisa a observar sobre a palavra-chave var é que o escopo da variável é o escopo da função mais próxima. O que isto significa?

No código a seguir, a função func2 é o escopo da função mais próximo da variável de impressão

 função func2 (val) { 
if (! val) {
var insideIf = '13';
}
console.log (insideIf);
}
func2 (verdadeiro); // imprime '13' - sem erro

Para ilustrar, a função precedente é equivalente ao seguinte:

 função func2 (val) { 
var insideIf;
if (! val) {
val = '13';
}
console.log (val);
}
func2 (falso); // imprime '13' - sem erro

Bloco de escopo

Outra palavra-chave que pode ser usada para declarar uma variável é let. Quaisquer variáveis declaradas dessa maneira estão no escopo de bloco mais próximo (ou seja, dentro do {} em que foram declaradas).

 função func3 (val) { 
seja a = 10;
if (val) {
deixa a = 20;
console.log (o valor `in innerscope é $ {a}`)
}
console.log (o valor `no outerscope é $ {a}`)
}
func3 (true)
// saídas
valor em innerscope é 20
valor em outerscope é 10

Variável

Uma variável, no contexto da programação, é um nome simbólico dado a uma quantidade desconhecida que permite que o nome seja usado independentemente da informação que representa. As variáveis estão associadas aos locais de armazenamento de dados e os valores de uma variável são normalmente alterados durante a execução do programa.

Tipos Variáveis

Em JavaScript , existem sete tipos de dados primitivos: booleano, número, string, indefinido, objeto, função e símbolo (o símbolo não será discutido). Uma coisa que se destaca aqui é que o indefinido é um valor primitivo que é atribuído a uma variável que acaba de ser declarada. typeof é o operador primitivo usado para retornar o tipo de variável.

 var boolval = falso; // boleano 
typeof boolval; // boolean
var age = 28;
tipo de idade; // number
var lastName = "Dana";
typeof lastName; // string
var fruits = ["Apple", "Banana", "Kiwi"];
tipo de frutas; // objeto
var me = {firstName: "Neeraj", lastName: "dana"};
tipo de mim; // objeto
var nullVar = null;
typeof nullVar; // object

var function1 = function () {
console.log (1);
}
typeof function1 // function
var blank;
tipo de branco; // Indefinido

Resumo

JavaScript tem uma técnica de declaração de variável diferente da maioria das linguagens de programação. var declara a variável dentro do escopo da função, let declara a variável no escopo do bloco, e as variáveis podem ser declaradas sem qualquer operador no escopo global; no entanto, o escopo global deve ser evitado em todos os momentos.