👋 Introdução

ES07 (EcmaScript 2016) foi lançado já faz um bom tempo, porém queremos reforçar o conhecimento da linguagem e vamos trazer uma série de posts apresentando as funcionalidades do EcmaScript, isto é, do bom e velho JavaScript.

Fizemos um post há três anos onde apresentamos As melhores features do ES6, ES7 e ES8 na didática do Diego Fernandes.

A versão ES07 traz duas funcionalidades: Operador Exponencial (Exponentiation Operator) e o método includes no Array.

💻 Operador Exponencial

Na matemática,  exponenciação, também conhecida como potencialização, significa multiplicar a base por ela mesma, pela quantidade de vezes do expoente.

Exemplo: 2^3 = 2 x 2 x 2 = 8

No JavaScript utilizamos o objeto Math.pow(2,3) // 8

Mas agora temos um código mais limpo e nativo da própria linguagem:

2 ** 2 // 4
2 ** 3 // 8
5 ** 4 // 5 * 5 * 5 * 5 = 625

console.log(3 ** 4);
// Resultado: 81

console.log(10 ** -2);
// Resultado: 0.01

console.log(2 ** 3 ** 2);
// Resultado: 512

console.log((2 ** 3) ** 2);
// Resultado: 64

Esse tipo de código será utilizado em projetos de robotóca, construção de Apps para cálculos matemáticos e na área de física.

️💻 Função Array.includes()

O método Array.includes verifica se há algum valor dentro de um array. Deste modo, se sim, retorna true; se não, retorna false.

Sintaxe:

const numbers = [1, 2, 3];
console.log(numbers.includes(2));
// Resultado: true
console.log(numbers.includes(4));
// Resultado: false

Mais alguns exemplos:

// Array de Números
const numbers = [1, 2, 3];

console.log(numbers.includes(2));
// Resultado:  true

// Array de Strings
const pets = ['cat', 'dog', 'bat'];

console.log(pets.includes('dog'));
// Resultado:  true

console.log(pets.includes('at'));
// Resultado:  false

// Diferente do includes da String que pegar o valor parcialmente.
console.log("thiago".includes("go"))
// Resultado:  true

class Alumni {
  constructor(name) {
  	this.name = name
  }
}

// Alumni
const Thiago = new Alumni("thiago");
const Vini = new Alumni("vinicius");
const Dani = new Alumni("dani");

// Instrutores
const Diego = new Alumni('diego'); 
const Mayk = new Alumni('maykao')

// Array de Objetos
const alumniGoStack = [Thiago, Vini, Dani]
const instrutores = [Diego, Mayk]

console.log("Tem algum alumni Thiago?: ", alumniGoStack.includes(Thiago))
// Resultado:  true

console.log("Tem algum alumni Pedro?: ", alumniGoStack.includes(new Alumni("pedro")))
// Resultado: false

console.log("Diego está entre os alunos do GoStack?", alumniGoStack.includes(Diego))
// Resultado:  false

Método includes é bem simples de ser utilizar e muito útil. Mas não confunda o funcionamento dele com o includes da String.

👊 Conclusão

Dessas duas novas features, no seu dia a dia como dev, a funcionalidade de Array.includes será mais utilizada.

E aí, o que achou do post?

Espero que tenha curtido! 💜

O aprendizado é contínuo e sempre haverá um próximo nível! 🚀