Objeto math em Javascript

O Objeto math em Javascript, não é voltado para cálculos básicos de matemática, como vimos no artigo sobre operadores, isso fica por conta do objeto number e dos sinais de +, , /, *, e assim por diante.

Por outro lado, o objeto math tem propriedades e métodos matemáticos um pouco mais avançados, como LN10, que é o logaritmo natural de 10,  e log(x), que retorna o logaritmo natural de x.

Também diferente de outros objetos Javascript que já vimos, todas as propriedades e métodos do objeto math são estáticos, ou seja, você não precisa criar instâncias do objeto math, mas acessa os métodos e propriedades diretamente pela classe do mesmo.

Propriedades do objeto math em Javascript

Confira a lista de propriedades do objeto math:

  • E – O valor de e, a base de logaritmos naturais;
  • LN10 – O logaritmo natural de 10;
  • LN2 – O logaritmo natural de 2;
  • LOG2E – O recíproco aproximado de LN2 – O logaritmo de base 2 de e;
  • LOG10E – O recíproco aproximado de LN2 – O logaritmo de base 10 de e;
  • PI – O valor de pi;
  • SQRT1_2 – A raiz quadrada de 1/2;
  • SQRT2 – A raiz quadrada de 2.

Por exemplo:

alert( Math.SQRT2 );
// 1.4142135623730951

Métodos do objeto math em Javascript

O bom de se trabalhar com o objeto math, é que, independente do valor que você esteja tentando manipular, ele sempre será convertido em um número, você não precisa fazer nenhuma conversão na sua aplicação.

Veja abaixo alguns métodos trigonométricos disponíveis:

  • Math.sin(x) – Um ângulo específico em radianos (seno);
  • Math.cos(x) – Um ângulo específico em radianos (cosseno);
  • Math.tan(x) – Um ângulo específico em radianos (tangente);
  • Math.acos(x) – Um número entre -1 e 1 (Arco cosseno);
  • Math.asin(x) –  Um número entre -1 e 1 (Arco seno);
  • Math.atan(x) – Qualquer número (Arco tangente);
  • Math.atan2(py, px) – As coordenadas x e y de um ponto (Ângulo entre um ponto x e a origem).

Math.abs()

O método abs, recebe um valor representando um número e retorna o valor absoluto desse número. Se for negativo, o valor será convertido para positivo. Veja um exemplo:

var número = -4.45;

alert( Math.abs( número ) );
// 4.45

Math.ceil()

O método ceil, arredonda um número para o próximo número inteiro. Por exemplo 4.45 se torna 5.

var número = 4.45;

alert( Math.ceil( número ) );
// 5

Math.floor()

O método floor, arredonda um número para o número inteiro anterior. Por exemplo, 4.45 se torna 4:

var número = 4.45;

alert( Math.floor( número ) );
// 4

Math.round()

O método round, arredonda um número dependendo do valor, por exemplo, 4.45 se torna 4, 4.55 se torna 5.

var número = 4.45;

alert( Math.round( número ) );
// 4

var número = 4.55;

alert( Math.round( número ) );
// 5

Math.exp()

O método exp, calcula um número equivalente a e, a base dos logaritmos naturais, elevado ao valor do argumento passado para o método:

var valor = Math.exp(4); // equivalente a e4

Math.pow()

O método pow, eleva um número a uma determinada potência:

var valor = Math.pow(3,2); // 3x3 = 9

Math.min() e Math.max()

Os métodos min e max, podem receber vários valores, porém, retornam o menor ou maior valor dentro os números passados.

var número = 1; 
var número2 = 2; 
var número3 = 3; 

alert( Math.min( número, número2, número3 ) );
// 1

alert( Math.max( número, número2, número3 ) );
// 3

Math.random()

O método random, retorna um valor entre 0 e 1, por exemplo:

alert( Math.random() );
// 0.48325373334938204

Um método interessante para gerar números aleatórios, veja um exemplo:

// Um número entre 0 e 1
var rand = Math.random();

// Multiplica por 9999 para "andar" com o ponto
rand *= 9999;

// Arredonda para sumir com o ponto
rand = Math.ceil( rand );

alert( rand );
// Resultado aleatório: 7583

Outras aulas

Caso tenha perdido a aula anterior, segue o link:

Próxima aula:

Caso queira visualizar todas as aulas dessa sessão em ordem cronológica invertida: