You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### <aname="arrow_func_concept"></a> Função de seta
290
+
### <aname="função-de-seta"></a> Função de seta
291
291
292
292
A atualização do JavaScript ES6 introduziu *funções de seta*, que é outra maneira de declarar e usar funções. Aqui estão os benefícios que elas trazem:
*Desestruturação* é uma maneira conveniente de criar novas variáveis extraindo alguns valores de dados armazenados em objetos ou arrays (matrizes).
478
+
479
+
Para nomear alguns casos de uso, *desestruturação* pode ser usado para desestruturar parâmetros de função ou *this.props* em projetos React, por exemplo.
480
+
481
+
#### Explicação com exemplo de código
482
+
483
+
- Objeto
484
+
485
+
Vamos considerar o seguinte objeto para todos os exemplos:
486
+
487
+
```js
488
+
constperson= {
489
+
firstName:"Nick",
490
+
lastName:"Anderson",
491
+
age:35,
492
+
sex:"M"
493
+
}
494
+
```
495
+
496
+
Sem desestruturação
497
+
498
+
```js
499
+
constfirst=person.firstName;
500
+
constage=person.age;
501
+
constcity=person.city||"Paris";
502
+
```
503
+
504
+
Com desestruturação, tudo em uma única linha:
505
+
506
+
```js
507
+
const { firstName:first, age, city="Paris" } = person; // É isso ! :)
508
+
509
+
console.log(age) // 35 -- uma nova variável age é criada e é igual a person.age
510
+
console.log(first) // "Nick" -- uma nova variável first é criada e é igual person.firstName
511
+
console.log(firstName) // ReferenceError -- person.firstName existe MAS a nova variável criada é nomeada primeiro
512
+
console.log(city) // "Paris" -- uma nova variável city é criada e uma vez que person.city é indefinida, city é igual ao valor padrão fornecido "Paris".
513
+
```
514
+
515
+
**Nota :** Em ```const { age } = person;```, os colchetes depois da palavra-chave *const* não são usados para declarar um objeto nem um bloco, mas é a sintaxe da *desestruturação*.
516
+
517
+
- Parâmetros de função
518
+
519
+
*Desestruturação* é freqüentemente usado para desestruturar parâmetros de objetos em funções.
520
+
521
+
Sem desestruturação
522
+
523
+
```js
524
+
functionjoinFirstLastName(person) {
525
+
constfirstName=person.firstName;
526
+
constlastName=person.lastName;
527
+
return firstName +'-'+ lastName;
528
+
}
529
+
530
+
joinFirstLastName(person); // "Nick-Anderson"
531
+
```
532
+
533
+
Ao desestruturar o parâmetro de objeto *person*, obtemos uma função mais concisa:
534
+
535
+
```js
536
+
functionjoinFirstLastName({ firstName, lastName }) { // criamos variáveis firstName e lastName por desestruturação person parameter
537
+
return firstName +'-'+ lastName;
538
+
}
539
+
540
+
joinFirstLastName(person); // "Nick-Anderson"
541
+
```
542
+
543
+
A desestruturação é ainda mais agradável para usar com [funções de seta] (#função-de-seta):
0 commit comments