Estruturas Imutáveis No Javascript

Ao falar sobre imutabilidade o pensamento que nos vem a cabeça é: simples, é só fazer cópia das variáveis ao invés de manipular a mesma.
De fato, a cópia ao invés do reúso dos objetos é um dos pilares da imutabilidade. Mas ao trabalharmos dessa forma, resolveremos o problema de mutação, mas criaremos outro: consumo de memória e processamento excessivos.

Considerando o primeiro cenário (cópia), é possível trabalhar da seguinte maneira:

1
2
3
4
const arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
const arr2 = [...arr]
arr2[0] = 'x'
// arr2 => ['x', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

Ao fazer isso, internamente são criados dois arrays completamente diferentes, porém com alguns valores em comum.
Não seria mais interessante se fosse possível fazer o que aparentemente fazemos com esse código: criar o arr2 “baseado” em arr, dessa forma otimizando memória?

Ler mais

Como Esperar O Resultado De Uma Função No Javascript

Uma coisa que é sabida é que o Javascript é síncrono.
Isto quer dizer que ele executa suas funções em paralelo, sem esperar terminar alguma função primeiro para depois executar uma outra.

Muitas das vezes, isso não nos causa nenhum impacto, mas em alguns casos, precisamos esperar o resultado de uma determinada função para que assim possamos seguir em diante do nosso código.

Para isso, precisaríamos então que essa nossa função se transforme em uma função assíncrona. Mas como?

Ler mais

Como Fazer POST No NodeJS

Quando falamos de desenvolvimento de um sistema logo nos vem na cabeça consumo de API, integração com back-end, etc.

Back-end é o que temos por trás de nossa aplicação, é onde estará concentrada a lógica do sistema, onde ocorrerá a comunicação entre o front-end com o banco de dados.
Neste post, vamos mostrar como criar um POST com NodeJS!

Ler mais

Evite Usar Push Em Objetos No Javascript

No Javascript quando passamos um objeto/array em uma função, como parâmetro, passamos ela como referência.
Quando realizamos alguma operação que altera, como por exemplo, adicionar um elemento novo ao objeto e utilizamos push, estamos alterando diretamente aquele objeto que passamos apenas como referência!

Qual a consequência disso? Caso uma outra função esteja utilizando o mesmo objeto, será afetado pela ação de adicionar!

Então, pensando nisso, a melhor alternativa é sempre retornarmos uma cópia do objeto!
E para isso podemos utilizar o spread operator

Ler mais