Objeto Math do JavaScript
Aprenda o objeto Math do JavaScript: arredondamento, potências, raízes, números aleatórios, trigonometria e constantes como Math.PI e Math.E, com exemplos executáveis.
Introdução ao Objeto Math do JavaScript
Math é um objeto JavaScript embutido que agrupa constantes e funções matemáticas. Ao contrário da maioria dos objetos, você nunca cria uma instância dele com new — Math é estático, portanto você chama tudo diretamente nele: Math.round(...), Math.PI, e assim por diante. Todos os seus métodos operam em números e complementam os operadores aritméticos padrão (+, -, *, /, %, **).
Este guia aborda o que cada método comum faz, as armadilhas que pegam as pessoas de surpresa (arredondamento de negativos, geração de número aleatório em um intervalo, o que acontece com entradas inválidas) e onde essas funções aparecem em código real, como animação e finanças.
Funções Math populares
| Função | Descrição |
|---|---|
Math.abs(x) | Retorna o valor absoluto de x. |
Math.ceil(x) | Retorna o menor inteiro maior ou igual a x. |
Math.floor(x) | Retorna o maior inteiro menor ou igual a x. |
Math.round(x) | Arredonda x para o inteiro mais próximo. |
Math.max(x, y, ...) | Retorna o maior dentre zero ou mais números fornecidos como parâmetros de entrada. |
Math.min(x, y, ...) | Retorna o menor dentre zero ou mais números fornecidos como parâmetros de entrada. |
Math.pow(x, y) | Retorna x elevado à potência y. |
Math.sqrt(x) | Retorna a raiz quadrada de x. |
Math.cbrt(x) | Retorna a raiz cúbica de x. |
Math.random() | Retorna um número pseudo-aleatório entre 0 e 1. |
Math.log(x) | Retorna o logaritmo natural (log na base e) de x. |
Math.log10(x) | Retorna o logaritmo de base 10 de x. |
Math.exp(x) | Retorna e^x, onde x é o argumento e e é o número de Euler (aproximadamente 2,71828). |
Math.sin(x) | Retorna o seno de x (x em radianos). |
Math.cos(x) | Retorna o cosseno de x (x em radianos). |
Math.tan(x) | Retorna a tangente de x (x em radianos). |
Math.asin(x) | Retorna o arco seno de x em radianos. |
Math.acos(x) | Retorna o arco cosseno de x em radianos. |
Math.atan(x) | Retorna o arco tangente de x em radianos. |
Math.atan2(y, x) | Retorna o arco tangente do quociente de seus argumentos (y/x). |
Entendendo os Fundamentos: Funções Matemáticas Essenciais do JavaScript
Math.round()
A função Math.round() arredonda um número para o inteiro mais próximo. Se a parte fracionária for 0,5 ou maior, arredonda para cima; caso contrário, arredonda para baixo.
Exemplo:
Atenção — números negativos e .5: Math.round() sempre arredonda em direção ao infinito positivo nos empates, não "para longe do zero". Isso faz com que Math.round(-2.5) seja igual a -2, não -3. Se você precisar simplesmente remover a parte fracionária, use Math.trunc() em vez disso.
Math.ceil()
A função Math.ceil() arredonda um número para cima, para o próximo inteiro maior, independentemente da sua parte fracionária.
Exemplo:
Math.floor()
Em contraste, Math.floor() arredonda um número para baixo, para o inteiro mais próximo, descartando qualquer parte fracionária.
Exemplo:
Math.sqrt()
A função Math.sqrt() retorna a raiz quadrada de um número.
Exemplo:
Math.pow()
Math.pow() eleva um número a uma potência especificada. No JavaScript moderno, você pode usar o operador de exponenciação ** para o mesmo resultado — 4 ** 2 equivale a Math.pow(4, 2).
Exemplo:
Math.trunc() e Math.sign()
Math.trunc() remove a parte fracionária de um número, deixando a parte inteira intocada — nunca arredonda. Isso o torna previsível tanto para números positivos quanto negativos, ao contrário de Math.floor() (que arredonda em direção a -Infinity).
Math.sign() informa o sinal de um número: 1 para positivo, -1 para negativo e 0 (ou -0) para zero.
Exemplo:
Tratando entradas inválidas: NaN
Os métodos Math não lançam exceções para entradas inválidas — eles retornam NaN ("Not a Number"). Por exemplo, a raiz quadrada de um número negativo, ou qualquer método com um valor não numérico, resulta em NaN. Use Number.isNaN() para detectá-lo antes de confiar no resultado.
Exemplo:
Operações Avançadas: Trigonometria e Além
Math.sin(), Math.cos(), Math.tan()
Essas funções são essenciais para cálculos trigonométricos, correspondendo ao seno, cosseno e tangente.
Exemplo:
Math.random()
Math.random() gera um número pseudo-aleatório entre 0 (inclusivo) e 1 (exclusivo). É amplamente utilizado no desenvolvimento de jogos e em simulações.
Exemplo:
Necessidade mais comum — um inteiro aleatório em um intervalo. Sozinho, Math.random() raramente faz o que você precisa; geralmente é necessário um número inteiro entre min e max. Escale o valor de 0–1 e depois aplique o floor. Esta fórmula retorna um inteiro de min a max inclusivo:
Observe que Math.random() não é criptograficamente seguro. Para aleatoriedade sensível à segurança (tokens, senhas), use crypto.getRandomValues() em vez disso.
Math.max() e Math.min()
Essas funções retornam o maior e o menor número de um conjunto de argumentos, respectivamente.
Exemplo:
Aplicações no Mundo Real: Utilizando Funções Matemáticas
As funções Math do JavaScript não são apenas conceitos teóricos — têm aplicações práticas em diversos domínios como animação, cálculos financeiros, computações científicas e muito mais.
Estudo de Caso: Animação com Trigonometria
Considere uma animação baseada na web onde um objeto se move em trajetória circular. Esse movimento pode ser obtido usando as funções Math.sin() e Math.cos().
// Circular motion parameters
let radius = 20;
let angle = 0;
function animateCircle() {
let x = radius * Math.cos(angle);
let y = radius * Math.sin(angle);
angle += 0.01;
// Update the object's position here
}Ferramenta de Aprendizado Interativo: Criando um Quiz de Matemática
Usando funções Math do JavaScript, é possível desenvolver um quiz matemático interativo que desafia os usuários com problemas aritméticos aleatórios.
Explorando Mais: Constantes Math e Além
Além do conjunto de funções, o objeto Math do JavaScript também fornece diversas constantes matemáticas importantes. Essas constantes não são apenas valores fixos, mas servem como elementos fundamentais em vários cálculos complexos, especialmente em computação científica e matemática.
Math.PI
Math.PI representa a razão entre a circunferência de um círculo e seu diâmetro. É aproximadamente igual a 3,14159. Essa constante é essencial em cálculos envolvendo círculos e esferas, como calcular a área de um círculo (Area = Math.PI * radius * radius) ou a circunferência (Circumference = 2 * Math.PI * radius).
Exemplo:
Math.E
Math.E, conhecido como número de Euler, é aproximadamente igual a 2,718. É a base dos logaritmos naturais e é amplamente utilizado em cálculos de crescimento, juros compostos e análise de números complexos. Em JavaScript, Math.E é frequentemente usado com a função Math.exp(), que eleva Math.E à potência de um número fornecido.
Exemplo:
Math.LN2
Math.LN2 representa o logaritmo natural de 2, aproximadamente 0,693. Essa constante é particularmente útil em algoritmos que envolvem cálculos logarítmicos, como calcular o tempo de duplicação em modelos de crescimento populacional ou em determinados cálculos financeiros.
Exemplo:
Outras Constantes Notáveis
- Math.LN10: Essa constante representa o logaritmo natural de 10, útil para escalonamento de dados logarítmicos.
- Math.LOG2E: O logaritmo do número de Euler na base 2. É usado para converter logaritmos da base E para a base 2.
- Math.LOG10E: O logaritmo do número de Euler na base 10, usado em contextos similares ao
Math.LOG2E, mas para logaritmos de base 10. - Math.SQRT1_2: Representa a raiz quadrada de 1/2 e é frequentemente usado em cálculos geométricos.
- Math.SQRT2: A raiz quadrada de 2, uma constante que aparece com frequência em álgebra, geometria e engenharia.
Aplicações Práticas das Constantes Math
Entender e utilizar essas constantes pode melhorar significativamente a funcionalidade das suas aplicações JavaScript. Por exemplo, no desenvolvimento de jogos, Math.PI é indispensável para calcular trajetórias e rotações. Em tecnologia financeira, Math.E e suas constantes logarítmicas relacionadas são cruciais para calcular juros compostos e cronogramas de amortização.
Conclusão
O objeto Math oferece arredondamento, potências, raízes, aleatoriedade, trigonometria e um conjunto de constantes úteis — tudo sem precisar importar nada. As principais coisas a lembrar: Math é estático (sem new), os empates em Math.round() arredondam em direção a +Infinity, Math.trunc() é a forma previsível de remover uma parte fracionária, escale Math.random() para obter um inteiro em um intervalo, e entradas inválidas retornam NaN em vez de um erro.
Tópicos relacionados
- Números JavaScript — literais numéricos, precisão e conversão
- Operadores JavaScript — aritmética, incluindo o operador de exponenciação
** - Funções JavaScript — encapsule funções matemáticas reutilizáveis, como o helper
randomIntacima - Operadores de Comparação — combine com
Math.max/Math.minpara verificações de limites