Variáveis e como declará-las
- #JavaScript
Podem ser usadas para armazenar dados, como strings, números, objetos ou valores booleanos. Em JavaScript, existem três tipos de declarações de variáveis diferentes:
- VAR - Era a maneira tradicional de declarar variáveis em JavaScript antes do ES6, mas foi substituída por let e const em grande parte devido ao seu escopo de função e comportamento de hoisting (içamento);
- LET - É usada para declarar variáveis que podem ser reatribuídas;
- CONST - É usada para declarar constantes, ou seja, variáveis cujo valor não pode ser alterado após a atribuição inicial.
Identificador da Variável
JavaScript é considerado fracamente tipado. Isso significa que você não precisa declarar explicitamente o tipo de dado que uma variável irá conter ao criá-la, porém é recomendado seguir as boas práticas e declarar o identificador da variável. Isso ajuda a evitar problemas potenciais e contribui para a qualidade geral do seu código. Identificadores são usados para nomear variáveis, funções, classes, propriedades de objetos e métodos.
Portanto, enquanto a variável é o espaço na memória onde um valor é armazenado e pode ser alterado, o identificador é o nome usado para referenciar essa variável e acessar seu valor. Em resumo, a variável é identificada pelo identificador. Um identificador deve começar com uma letra (a a z ou A a Z), um sublinhado (_) ou um cifrão ($). JavaScript é case-sensitive, ou seja, diferencia maiúsculas de minúsculas. Assim, nome e Nome são identificadores diferentes.
Strings
As strings são sequências de caracteres, como texto, em JavaScript. Elas são delimitadas por aspas simples (' ') ou aspas duplas (" ").
let mensagem = "Olá, mundo!"; console.log(mensagem);
No modelo acima temos uma declaração de variável do tipo let, um identificador com o nome mensagem, que é o que eu quero que mostre na tela, uma mensagem e demos o valor da mensagem. Não se prenda a esse identificador mensagem, podemos usar outros nomes de identificadores, contanto que eu possa identificar que queremos declarar uma variável do tipo string. Aqui estão algumas diretrizes para escolher um nome apropriado:
- Descritividade: Escolha um nome que descreva claramente o propósito ou conteúdo da variável. Isso tornará seu código mais legível e compreensível.
- CamelCase: Em JavaScript, é comum usar a convenção de CamelCase para nomes de variáveis compostos por várias palavras. Comece com uma letra minúscula e capitalize cada palavra subsequente. Por exemplo: minhaMensagem, textoDeExemplo.
- Evite palavras reservadas: Evite usar palavras reservadas do JavaScript, como var, function, let, const, if, else, etc., como identificadores de variáveis.
Outros exemplos de declaração de strings:
let textoInicial = "Olá, mundo!"; console.log(textoInicial);
let saudacao = "Olá, mundo!"; console.log(saudacao);
let mensagemDeBoasVindas = "Olá, mundo!"; console.log(mensagemDeBoasVindas);
Números
Podem ser inteiros ou de ponto flutuante (decimais).
let numeroInteiro = 10;
let numeroDecimal = 3.14;
let resultado = numeroInteiro * numeroDecimal;
console.log(resultado); // Saída: 31.4
Objetos
São estruturas de dados que podem armazenar dados e funcionalidades relacionadas em pares de chave-valor. Eles são delimitados por chaves {}.
let pessoa = { nome: "João", idade: 30, cidade: "São Paulo" }; console.log(pessoa.nome); // Saída: João console.log(pessoa.idade); // Saída: 30 console.log(pessoa.cidade); // Saída: São Paulo
Valores Booleanos
Representam verdadeiro (true) ou falso (false). Eles são usados principalmente em expressões lógicas e estruturas de controle de fluxo.
let estaChovendo = true;
let temSol = false;
if (estaChovendo) {
console.log("É melhor levar um guarda-chuva.");
} else { console.log("Está ensolarado lá fora!"); }
Hoisting
É um comportamento em JavaScript quando se utiliza o var, onde apenas as declarações de variáveis e funções são movidas para o topo do escopo, ou seja o valor atribuído no var não iça junto com a declaração, isso afeta como as variáveis são tratadas em diferentes partes do código. mas não ocorre da mesma maneira com let e const. Esse comportamento é uma característica da linguagem. Variáveis do tipo var sempre vão se manter restrito ao escopo global ou a um escopo de função, sempre vai sofrer um hoisting até o escopo mais próximo de uma função ou até o escopo mais próximo global que tiver.
Scopo
Escopo Global: São variáveis e funções declaradas fora de qualquer função ou bloco. Escopo Local (ou Funcional): Variáveis e funções declaradas dentro de uma função. Elas só podem ser acessadas dentro da função em que foram declaradas. O escopo local é limitado ao contexto de uma função específica. Escopo de Bloco (Block Scope): Variáveis declaradas com let e const têm escopo de bloco. O escopo de bloco se refere a qualquer par de chaves {} em JavaScript, como em loops for, while, condicionais if, entre outros. VAR NÃO TEM O BLOCK SCOPE. Escopo Lexical (Closure): Refere-se à capacidade de uma função interna acessar as variáveis de sua função externa, mesmo após a função externa ter retornado. Isso é possível devido ao fechamento (closure), onde a função interna mantém uma referência ao escopo em que foi criada.
Referências
Contexto e Escopo no JavaScript