Funções JavaScript

Por quê é fundamental dominá-las?

Posted by Raphael Lima on 09-10-2016

Este é o primeiro de uma série de posts dedicados apenas a um conceito extremamente importante em JavaScript: Funções. Vamos analisar o por quê é crucial o entendimento das funções, como elas são objetos de primeira classe, declarações, contexto, parâmetros, etc. É importante termos em mente que ter o entendimento de JS como uma linguagem funcional, é o que faz elevar o nível de qualidade do seu código.
Embora funções JavaScript sejam objetos de primeira classe, elas também podem ser tratadas como um objeto JavaScript e assim como os mais comuns tipos de dados em JS, elas podem ser referenciadas por variáveis, podem ser declaradas como literais e também podem ser passadas como parâmetros em outras funções.
O fato de funções serem tratadas como objetos em JS é de extrema importância em diversos casos, mas quando falamos em concisão de código, temos uma grande vantagem comparando-se com códigos imperativos. Vejamos o seguinte exemplo, escrito em Java:

Arrays.sort(valores, new Comparator<Integer>(){
    public int comparar(Integer valor1, Integer valor2){
      return valor2 - valor1;
    }
});

Agora vejamos o mesmo código acima, em JS funcional:

valores.sort(( valor1, valor2 ) => { return valor2 - valor1 });

Bom, não vou entrar em detalhes (por enquanto!) sobre as diferenças destes códigos, sobre a diferenças entre funcional e imperativo, etc. Este post, como disse no início, é apenas uma introdução sobre a importância do entendimento de funções JavaScript e mostrar uma das vantagens que temos se compreendermos o JS como uma linguagem funcional.

Por ora é só, deixem seus comentários e acompanhem os próximos posts.