Domine Hoisting e Strict Mode com Boas Práticas JS
Guia Prático: Funções e Escopo em JavaScript Moderno
Neste tutorial, vamos explorar dois pilares fundamentais de qualquer linguagem de programação: funções e escopo. Esses conceitos são essenciais para organizar o código de forma clara e manter a lógica bem estruturada, facilitando tanto a manutenção quanto a evolução dos seus projetos.
Ao final deste estudo, você terá uma compreensão sólida sobre como declarar funções de diferentes maneiras, como e por que reutilizar funções ao máximo, e como o escopo influencia diretamente no acesso às variáveis no seu código JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente..
O que são Funções?🔗
De forma simples, uma função é um bloco de código independente que realiza uma tarefa específica. Podemos pensar numa função como uma espécie de "receita" que descreve como executar certas instruções sempre que for
Estruturas de Controle: if, switch e loopsAprenda as estruturas de controle em JavaScript, como if/else, switch e loops, com exemplos claros e didáticos para otimizar seu código e lógica de programação. necessário. Em termos gerais:
- Funções evitam repetição de código.
- Permitem “isolar” lógicas específicas e facilitar a manutenção.
- Podem receber valores de entrada, chamados de parâmetros.
- Podem retornar um valor de saída, conhecido como retorno.
Declarando e Utilizando Funções🔗
Em JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente., existem diversas formas de declarar funções. Vamos abordar as principais:
Declaração Clássica (Function Declaration)
A forma mais tradicional de declarar funções em JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente. é usando a sintaxe:
function nomeDaFuncao(parametro1, parametro2) {
// conjunto de instruções
return resultado;
}
Exemplo:
function cumprimentar(nome) {
return `Olá, ${nome}!`;
}
console.log(cumprimentar("Maria")); // Saída: Olá, Maria!
Alguns pontos sobre Function Declaration:
1. O nome da função (cumprimentar, no exemplo) deixa o código mais descritivo.
2. Você pode chamar a função em qualquer lugar do código, após sua declaração.
Expressão de Função (Function Expression)
Na Function Expression, atribuímos uma função anônima (ou nomeada, caso necessário) a uma variável
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo.. A sintaxe é:
const nomeDaVariavel = function(parametro1, parametro2) {
// conjunto de instruções
return resultado;
};
Exemplo:
const somar = function(a, b) {
return a + b;
};
console.log(somar(2, 3)); // Saída: 5
Algumas diferenças em relação à declaração clássica:
- Aqui, a função é tratada como um valor e atribuída a uma variável
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. (somar). - Nesse formato, a chamada só poderá ser feita após a atribuição, pois a função só passa a existir no momento em que o interpretador atinge essa linha de código.
Arrow Functions
As Arrow Functions (introduzidas no ECMAScript 6) possuem uma sintaxe mais sucinta e, em muitos casos, tornam o código mais limpo. A sintaxe é:
const nomeDaFuncao = (parametro1, parametro2) => {
// conjunto de instruções
return resultado;
};
Exemplo básico:
const multiplicar = (a, b) => {
return a * b;
};
console.log(multiplicar(3, 4)); // Saída: 12
Caso a função tenha apenas uma expressão de retorno, é possível omitir as chaves e o return, como no exemplo:
const dividir = (a, b) => a / b;
console.log(dividir(10, 2)); // Saída: 5
As arrow functions também apresentam diferenças sutis em relação ao uso do this e não possuem objeto
Fundamentos de Arrays e ObjetosDomine arrays e objetos em JavaScript com este tutorial narrativo. Aprenda a utilizar métodos e exemplos práticos para aprimorar seu desenvolvimento web. arguments próprio. Porém, manteremos nosso foco na escrita de funções e nos escopos básicos neste momento.
Passando Parâmetros e Recebendo Retornos🔗
As funções podem receber valores (parâmetros) e, se necessário, retornar um resultado (valor de retorno). Caso a função não contenha a palavra-chave return, ela não retorna nenhum valor, retornando implicitamente undefined.
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.
function apresentarPessoa(nome, idade) {
console.log(`Nome: ${nome}`);
console.log(`Idade: ${idade}`);
// Sem retorno explícito
}
apresentarPessoa("João", 25);
// Saída:
// Nome: João
// Idade: 25
Se desejarmos devolver um valor, usamos return:
function calcularDesconto(valor, porcentagem) {
const desconto = (valor * porcentagem) / 100;
return valor - desconto;
}
console.log(calcularDesconto(100, 10));
// Saída: 90
Importante: Uma vez que o interpretador encontre o comandoreturn, ele encerra a execução da função imediatamente. Quaisquer instruções após oreturnnão serão executadas.
Escopo no JavaScript🔗
O escopo determina a visibilidade e o tempo de vida das variáveis em diferentes partes do código. Em JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente., existem principalmente:
1. Escopo Global
2. Escopo de Função
3. Escopo de Bloco (introduzido com let e
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.const no ES6)
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.
Escopo Global
- Variáveis
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. declaradas no nível mais externo são chamadas de variáveis
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. globais. - Podem ser acessadas em qualquer parte do código (desde que não haja sombras por declarações de mesmo nome em escopos internos).
Exemplo:
let saudacao = "Olá, mundo!"; // Escopo global
function exibirSaudacao() {
console.log(saudacao);
}
exibirSaudacao(); // Saída: Olá, mundo!
Escopo de Função
- Quando você declara variáveis
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. dentro de uma função usando var,
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.letou
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.const, elas ficam acessíveis apenas naquele bloco da função.
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação. - Não é possível acessar a variável
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. de dentro de uma função diretamente fora dela.
Exemplo:
function criarMensagem() {
let mensagem = "Mensagem secreta!";
console.log(mensagem);
}
criarMensagem(); // Saída: Mensagem secreta!
// console.log(mensagem); // Erro! mensagem não está definida no escopo global
Escopo de Bloco
- O escopo de bloco apareceu com
lete
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.const(ES6).
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação. - O bloco pode ser delimitado por
{ }como emif,fore outras estruturas.
Estruturas de Controle: if, switch e loopsAprenda as estruturas de controle em JavaScript, como if/else, switch e loops, com exemplos claros e didáticos para otimizar seu código e lógica de programação. - Variáveis
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. declaradas com letou
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.constnão “vazam” para fora do bloco em que foram criadas.
Variáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.
Exemplo:
function checarIdade(idade) {
if (idade >= 18) {
let texto = "Maior de idade";
console.log(texto); // Acessível dentro do 'if'
}
// console.log(texto); // Erro! 'texto' não está definido fora do if
}
checarIdade(20);
Observação: Quando usamosvar, seu escopo se limita à função (ou ao global), mas não respeita escopos de bloco comoifefor. Por isso, é recomendado o uso deleteconstpara evitar comportamentos inesperados.
Exemplos Práticos de Funções e Escopo🔗
Para ilustrar como funções e escopo podem trabalhar em conjunto, observe o exemplo a seguir:
function calcularSalarioLiquido(salarioBruto) {
// Escopo de função
const taxaDesconto = 0.2; // 20%
function aplicarDesconto(valor) {
// Esta função está aninhada e só existe dentro de calcularSalarioLiquido
return valor - valor * taxaDesconto;
}
const salarioLiquido = aplicarDesconto(salarioBruto);
return salarioLiquido;
}
console.log(calcularSalarioLiquido(5000));
// Saída: 4000 (Redução de 20% sobre 5000)
Observe que:
taxaDescontoeaplicarDescontofazem parte do escopo interno decalcularSalarioLiquido.- Não podemos chamar
aplicarDescontonem acessartaxaDescontode fora decalcularSalarioLiquido.
Tabela de Resumo🔗
A tabela
Criando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Descubra como montar tabelas HTML com tags básicas. Este tutorial prático ensina o uso de <table> <tr> <td> e <th> para organizar dados de forma eficiente. abaixo resume os conceitos principais:
| Conceito | Descrição |
|---|---|
| Função | Conjunto de instruções que executam uma tarefa específica ou calculam um valor. |
| Function Declaration | Forma clássica de declarar funções, uso de palavra-chave function; disponível em todo o escopo. |
| Expression Function | Atribui uma função a uma variável; só pode ser chamada após a atribuição. |
| Arrow Function | Sintaxe curta introduzida no ES6, sem this próprio. |
| Escopo Global | Variáveis definidas no “topo” do código, acessíveis por todo o programa. |
| Escopo de Função | Variáveis definidas dentro de uma função são visíveis apenas ali. |
| Escopo de Bloco | Criado por let e const; restringe acesso de variáveis aos blocos em que são declaradas. |
Conclusão🔗
Neste tutorial, você conheceu os princípios de funções em JavaScript
Introdução ao JavaScript e Configuração do AmbienteDescubra neste tutorial narrativo como configurar seu ambiente de desenvolvimento e começar a programar em JavaScript de maneira prática e eficiente., suas formas de declaração e como escopos (global, de função e de bloco) podem afetar a visibilidade e a vida útil das variáveis
Pré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo. no seu código. Dominar esses conceitos é um passo essencial para escrever programas mais organizados, seguros e de fácil manutenção.
Ao aplicar estes conhecimentos no dia a dia, você perceberá que a utilização adequada de funções e escopos contribui diretamente para manter a legibilidade e a qualidade dos seus projetos JavaScript. Boas práticas
Cobertura de Testes e Práticas de QualidadeDescubra como a cobertura de testes assegura qualidade e confiabilidade em projetos JavaScript. Aprenda a aplicar métricas e ferramentas essenciais. de escrita e organização de funções são diferenciais importantes para quem deseja avançar no desenvolvimento web.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- Documentação oficial do MDN: developer.mozilla.org/pt-BR/docs/Web/JavaScript
- ECMAScript® Language Specification: tc39.es/ecma262/
há 9 meses atrás
há 11 meses atrás
há 13 meses atrás
há 13 meses atrás
há 12 meses atrás
há 12 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 10 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás
há 9 meses atrás