1. INDEX
2. CONTEÚDO
-
Introdução
-
Objetivo
-
Objetivo da função seta:
- A arrow function tem por finalidade tornar a sintaxe mais fácil de ser lida e expressa, é útil quando usado como função anônima para interagir com coleções, porque ela usa o this da coleção e não seu próprio this.
- Uma expressão arrow function possui uma sintaxe mais curta quando comparada a uma expressão de função (function expression) e não tem seu próprio this, arguments, super ou new.target. Estas expressões de funções são melhor aplicadas para funções que não sejam métodos, e elas não podem ser usadas como construtoras (constructors)
-
[🔙]
-
-
Pre-requisitos:
-
Conhecimento da linguagem html.
-
Conhecimento de funções javascript.
-
[🔙]
-
-
-
Sintaxe da função seta (arrow function):
-
Sintaxe básica:
-
Um parâmetro com a expressão simples, o retorno não é necessário:
- param => expression
- param
- O nome de um argumento.
- Nenhum argumento precisa ser indicado com ().
- Para apenas um argumento, os parênteses não são necessários. (como foo => 1)
- statements or expression
- Várias instruções precisam ser colocadas entre colchetes.
- Uma única expressão não requer colchetes.
- A expressão também é o valor de retorno implícito da função.
- param
- param => expression
-
Vários parâmetros requerem parênteses. Com a expressão simples, o retorno não é necessário:
- ([param[, param]]) => { statements}
- (param1, paramN) => expression
-
As instruções multilinhas requerem colchetes e retorno:
-
Código javascript:
param => { let a = 1; return a + param; }
-
-
Vários parâmetros requerem parênteses. As instruções multilinhas requerem colchetes e retorno:
-
Código javascript:
(param1, paramN) => { let a = 1; return a + param1 + paramN; }
-
-
-
Sintaxe avançada:
-
Para retornar uma expressão literal de objeto, são necessários parênteses em torno da expressão:
-
Código javascript:
params => ({foo: "a"}) // returning the object {foo: "a"}
-
-
Rest parameters are supported:
-
Código javascript:
(a, b, ...r) => expression
-
-
Default parameters are supported:
-
Código javascript:
(a=400, b=20, c) => expression
-
-
Destructuring within params supported:
-
Código javascript:
([a, b] = [10, 20]) => a + b; // result is 30 ({ a, b } = { a: 10, b: 20 }) => a + b; // result is 30
-
-
Exemplo javascript para contar o tamanho de cada string de um array:
-
Código javascript:
const materials = ['Hydrogen','Helium','Lithium','Beryllium']; /** * Array.prototype.map() * Cria uma nova matriz com os resultados da chamada de uma * função fornecida em cada elemento desta matriz. * EXEMPLO DE USO: */ result = materials.map(material => material.length); console.log(result); // expected output: Array [8, 6, 7, 9]
-
-
A lista de parâmetros para uma função sem parâmetros deve ser escrita com um par de parênteses.
-
Código javascript:
() => { statements }
-
-
-
Diferenças e limitações das arrow functions :
- Não tem vínculos próprios com this ou super não deve ser usado como methods.
- Não tem arguments, nem new.target palavras-chave.
- Não é adequado para call, apply e bind métodos, que geralmente dependem de estabelecer um scope.
- Não pode ser usado como constructors.
- Não pode usar yield, dentro de seu corpo.
-
[🔙]
-
-
Diferença entre arrow function (=>) e function() em javascript
-
Arrow-Function incluída na es6 não é apenas uma sugar syntax de function, as duas sintaxes tem suas peculiaridades. Abaixo citarei algumas delas e quais as vantagens em usar as Arrow functions.
- O que é arrow function?
- Arrow function é uma função no javascript, porem ela traz algumas diferenças quando comparada com funções normais, vejamos abaixo:
- Lexical this
-
Ele captura o valor de this do contexto vinculado, ou seja do escopo em que ele se encontra, por exemplo:
- Código JavaScript
1 function Mensagem() { 2 3 this.mensagem = 'Passou'; 4 5 // Traditional function 6 this.logado = function() { 7 setTimeout(function() {//setTimeout=Executa um bloco específico uma vez depois de um determinado tempo 8 console.log(this.mensagem); 9 },30); 10 }; 11 } 12 13 var msg = new Mensagem(); 14 msg.logado(); // undefined
-
A função Mensagem ao ser instanciada, retornara um objeto com 2 propriedades, mensagem e logado. Que não logou a mensagem desejada porque o this na linha 8 trata-se da função anônima logado. Para funcionar como esperado, basta trocar a função na linha 7 por uma arrow function.
- Código JavaScript
1 function Mensagem() { 2 3 this.mensagem = 'Passou'; 4 5 // Traditional function 6 this.logado = function() { 7 setTimeout(() => { //setTimeout=Executa um bloco específico uma vez depois de um determinado tempo 8 console.log(this.mensagem); 9 },30); 10 }; 11 } 12 13 var msg = new Mensagem(); 14 msg.logado(); // "Passou"
-
Neste caso funciona como esperado porque o this dentro da arrow function é uma referência do this da função acima no caso a função Mensagem assim o this dentro da função logado será o mesmo que o da função Mensagem.
-
- Lexical this
- Arrow function é uma função no javascript, porem ela traz algumas diferenças quando comparada com funções normais, vejamos abaixo:
- .
- O que é arrow function?
-
...
-
[🔙]
-
-
REFERÊNCIAS
-
[🔙]
-
HISTÓRICO
-
15/02/2021
-
Criado a versão 0.0.1 deste documento;
-
Escrever objetivo de arrow function
-
Escrever a diferença entre arrow function e funções normais.
-
Escrever o tópico sintaxe de arrow function;
-
Conferir os links do documento
-
Inserir os botões de retorno para o topo.
-
[🔙]
-
-
16/02/2021
- Fazer revisão do texto do documento para saber se os textos estão claros.
-