Este é o primeiro de uma série de vários artigos que pretendo escrever sobre as novas implementações do ECMAScript 2016/2017.
O foco principal é aperfeiçoar meus conhecimentos em Javascript e ao mesmo tempo compartilhar todo o conhecimento adquirido com vocês.
Pretendo ser bem didático quanto aos exemplos como forma de ajudar principalmente os que estão iniciando na linguagem.
Bem, chega de papo e vamos ao que interessa!
A partir de agora chamarei o ECMAScript 2016/2017 de ES16/17 para facilitar nossas vidas.
O ES16/17 nos trouxe um novo método chamado includes.
Não confundir com o método includes do objeto global String.
O método includes está disponível no objeto global Array. Caso você não saiba do que estou falando pode ver mais sobre o objeto global Array aqui.
A assinatura do método
Primeiramente vamos dar uma olhada na assinatura do método que é a seguinte:
Array.prototype.includes(value : any) : boolean
Como podemos observar, este método aceita qualquer tipo (value: any) como valor e nos retorna um booleano como resposta.
Vejamos um exemplo:
No primeiro exemplo podemos notar que o método includes recebe o valor (3), percorre o array e verifica se encontra o valor dentro do array, caso o método encontre o valor ele nos retorna verdadeiro (true) e caso não encontre nos retorna falso (false).
No segundo exemplo ele recebe um número (4) que não existe no array e como é de se esperar nos retorna falso (false).
Simples e objetivo !
O curioso é que o método includes() é similar a um método que já existe no Javascript, este método é conhecido como indexOf():
Mas você pode estar se perguntando, se já existe um método que resolve o problema, para que criaram outro?
Na verdade existem pequenas diferenças entre eles e a primeira delas é que o método indexOf() não verifica NaN (propriedade do objeto global), já o método includes possui esse tipo de verificação.
Vejamos um exemplo:
A segunda diferença é que o método includes() não diferencia -0 e +0, pois o Javascript tenta minimizar isto nos dando a impressão que só existe um zero, quando na verdade existem dois zeros (-0 e +0).
Como não pretendo me aprofundar na explicação deste tópico do (zero negativo) em particular para não deixar o artigo muito extenso, deixo um link para vocês aqui onde explica em detalhes o problema.
Vejamos um exemplo:
No exemplo acima vemos que o método includes() trata o (-0) e o (+0) como iguais, quando na verdade eles não são.
É isso ai pessoal!
Espero que tenha ficado claro o uso do método includes e que vocês tenham gostado do artigo.
Qualquer dúvida, crítica ou sugestão serão bem vindas.
Spoiler : No próximo artigo pretendo falar um pouco sobre uma novidade muito interessante do ES16/17 que são os operadores de exponenciação.
Até breve e espero por vocês!
Top comments (0)