Explorando essa sintaxe que bolou minha cabeça.
Olá, comunidade!🖐
Já se deparou com uma sintaxe assim (...)? Cara, isso me deixou muito bolado! Como uma sintaxe igual tem sentidos diferentes? Coisas do JavaScript, mais especificamente o ES6. De acordo com Emerson Maia, diz: o ECMAScript 6, lançado em 2015,
Lançado em 2015, o ECMAScript 6 introduziu mudanças significativas na linguagem JavaScript, trazendo novas funcionalidades como let, const, arrow function, classes e módulos. Essas melhorias visam tornar o código mais limpo eficiente e fácil de manter. (Artigo, comunidade Google)
Contudo, quero focar nessa sintaxe (...), dependendo do contexto do seu código pode ter resultados diferentes, apesar de ter sintaxe iguais. O REST OPERATOR é usado para agrupar múltiplos valores em um array dentro de funções ou desestruturação. Veja o código abaixo como exemplo:
function somar(...numeros) {
return numeros.reduce((total, num) => total + num, 0);
}
console.log(somar(1, 2, 3, 4, 5)); // Saída: 15
Na função somar acima tem como argumentos (...numeros) e essa função retorna a soma total dos argumentos declarados no console.log(somar(1,2,3,4,5)) cujo resultado de sua saída é 15. (1+2+3+4+5=15). Note que no corpo da função não precisamos declarar a+b+c+d+e, o que poderia ser também (...4, 5) o que tornou o código mais simples e fácil de de entender. Agora veja o código abaixo:
const numeros = [1, 2, 3, 4, 5];
console.log(somar(...numeros)); // Saída: 15
Ao contrário do REST OPERATOR, o SPREAD OPERATOR espalha os elemento da array ou objetos, tornando os valores individuais. Assim, o exemplo desses dois códigos mostram o mesmo resultado com uso do REST e do SPREAD com finalidades diferentes. Pode usar esses códigos no seu VScode ou pesquisar outros códigos pra melhorar o seu entendimento. Eu só consegui ver a diferença quando fui ver o código e como ele funciona.
Caso colocasse uma const com uma string, o SPREAD PERATOR irá separar letra a letra dentro de uma nova array. Bacana? Espero ter ajudado e se preferir, coloca um comentário abaixo sobre o conteúdo e suas experiências. Isso vai me ajudar a buscar outros conteúdos como esse.🚀
Veja também👀:
https://www.devmedia.com.br/javascript-operadores-rest-e-spread/41200