Objeto Math de JavaScript
Aprende el objeto Math de JavaScript: redondeo, potencias, raíces, números aleatorios, trigonometría y constantes como Math.PI y Math.E, con ejemplos.
Introducción al objeto Math de JavaScript
Math es un objeto JavaScript incorporado que agrupa constantes y funciones matemáticas. A diferencia de la mayoría de los objetos, nunca se crea una instancia con new — Math es estático, por lo que todo se llama directamente sobre él: Math.round(...), Math.PI, etc. Todos sus métodos trabajan con números y complementan los operadores aritméticos estándar (+, -, *, /, %, **).
Esta guía cubre qué hace cada método común, los errores frecuentes que confunden a los programadores (redondeo de negativos, generación de un número aleatorio en un rango, qué ocurre con entradas inválidas) y dónde aparecen estas funciones en código real como animaciones y finanzas.
Funciones Math más populares
| Función | Descripción |
|---|---|
Math.abs(x) | Devuelve el valor absoluto de x. |
Math.ceil(x) | Devuelve el entero más pequeño mayor o igual que x. |
Math.floor(x) | Devuelve el entero más grande menor o igual que x. |
Math.round(x) | Redondea x al entero más cercano. |
Math.max(x, y, ...) | Devuelve el mayor de cero o más números dados como parámetros. |
Math.min(x, y, ...) | Devuelve el menor de cero o más números dados como parámetros. |
Math.pow(x, y) | Devuelve x elevado a la potencia de y. |
Math.sqrt(x) | Devuelve la raíz cuadrada de x. |
Math.cbrt(x) | Devuelve la raíz cúbica de x. |
Math.random() | Devuelve un número pseudoaleatorio entre 0 y 1. |
Math.log(x) | Devuelve el logaritmo natural (base e) de x. |
Math.log10(x) | Devuelve el logaritmo en base 10 de x. |
Math.exp(x) | Devuelve e^x, donde x es el argumento y e es el número de Euler (aproximadamente 2.71828). |
Math.sin(x) | Devuelve el seno de x (x en radianes). |
Math.cos(x) | Devuelve el coseno de x (x en radianes). |
Math.tan(x) | Devuelve la tangente de x (x en radianes). |
Math.asin(x) | Devuelve el arcoseno de x en radianes. |
Math.acos(x) | Devuelve el arcocoseno de x en radianes. |
Math.atan(x) | Devuelve la arcotangente de x en radianes. |
Math.atan2(y, x) | Devuelve la arcotangente del cociente de sus argumentos (y/x). |
Conceptos básicos: funciones principales de JavaScript Math
Math.round()
La función Math.round() redondea un número al entero más cercano. Si la parte fraccionaria es 0.5 o mayor, redondea hacia arriba; de lo contrario, redondea hacia abajo.
Ejemplo:
Precaución — números negativos y .5: Math.round() siempre redondea hacia el infinito positivo en caso de empate, no "alejándose del cero." Esto hace que Math.round(-2.5) sea igual a -2, no a -3. Si necesitas simplemente eliminar la parte fraccionaria, usa Math.trunc() en su lugar.
Math.ceil()
La función Math.ceil() redondea un número hacia arriba al siguiente entero mayor, independientemente de su parte fraccionaria.
Ejemplo:
Math.floor()
Por el contrario, Math.floor() redondea un número hacia abajo al entero más cercano, descartando cualquier parte fraccionaria.
Ejemplo:
Math.sqrt()
La función Math.sqrt() devuelve la raíz cuadrada de un número.
Ejemplo:
Math.pow()
Math.pow() eleva un número a una potencia especificada. En JavaScript moderno puedes usar el operador de exponenciación ** para el mismo resultado — 4 ** 2 equivale a Math.pow(4, 2).
Ejemplo:
Math.trunc() y Math.sign()
Math.trunc() elimina la parte fraccionaria de un número, dejando intacta la parte entera — nunca redondea. Esto lo hace predecible tanto para números positivos como negativos, a diferencia de Math.floor() (que redondea hacia -Infinity).
Math.sign() indica el signo de un número: 1 para positivo, -1 para negativo y 0 (o -0) para cero.
Ejemplo:
Manejo de entradas inválidas: NaN
Los métodos Math no lanzan excepciones con entradas incorrectas — devuelven NaN ("Not a Number"). Por ejemplo, la raíz cuadrada de un número negativo, o cualquier método al que se le pasa un valor no numérico, produce NaN. Usa Number.isNaN() para detectarlo antes de confiar en un resultado.
Ejemplo:
Operaciones avanzadas: trigonometría y más
Math.sin(), Math.cos(), Math.tan()
Estas funciones son esenciales para los cálculos trigonométricos, correspondientes al seno, coseno y tangente.
Ejemplo:
Math.random()
Math.random() genera un número pseudoaleatorio entre 0 (inclusive) y 1 (exclusivo). Se usa ampliamente en el desarrollo de videojuegos y simulaciones.
Ejemplo:
La necesidad más común — un entero aleatorio en un rango. Por sí solo, Math.random() raramente hace lo que necesitas; generalmente se requiere un número entero entre min y max. Escala el valor 0–1 y luego aplica floor. Esta fórmula devuelve un entero desde min hasta max inclusive:
Ten en cuenta que Math.random() no es criptográficamente seguro. Para aleatoriedad sensible a la seguridad (tokens, contraseñas), usa crypto.getRandomValues() en su lugar.
Math.max() y Math.min()
Estas funciones devuelven el número mayor y el menor de un conjunto de argumentos, respectivamente.
Ejemplo:
Aplicaciones en el mundo real: uso de funciones Math
Las funciones Math de JavaScript no son solo conceptos teóricos; tienen aplicaciones prácticas en diversos ámbitos como animaciones, cálculos financieros, computación científica y más.
Caso de estudio: animación con trigonometría
Considera una animación web en la que un objeto se mueve en un camino circular. Este movimiento se puede lograr usando las funciones Math.sin() y 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
}Herramienta de aprendizaje interactivo: crear un quiz matemático
Usando las funciones Math de JavaScript, se puede desarrollar un quiz matemático interactivo que desafíe a los usuarios con problemas aritméticos aleatorios.
Explorando más: constantes Math y más allá
Más allá de las funciones, el objeto Math de JavaScript también proporciona varias constantes matemáticas importantes. Estas constantes no son solo valores fijos, sino que sirven como elementos fundamentales en cálculos complejos, especialmente en computación científica y matemática.
Math.PI
Math.PI representa la relación entre la circunferencia de un círculo y su diámetro. Es aproximadamente igual a 3.14159. Esta constante es esencial en cálculos que involucran círculos y esferas, como calcular el área de un círculo (Area = Math.PI * radius * radius) o la circunferencia (Circumference = 2 * Math.PI * radius).
Ejemplo:
Math.E
Math.E, conocido como el número de Euler, es aproximadamente igual a 2.718. Es la base de los logaritmos naturales y se usa ampliamente en cálculos de crecimiento, interés compuesto y análisis de números complejos. En JavaScript, Math.E se usa frecuentemente con la función Math.exp(), que eleva Math.E a la potencia de un número dado.
Ejemplo:
Math.LN2
Math.LN2 representa el logaritmo natural de 2, aproximadamente 0.693. Esta constante es especialmente útil en algoritmos que involucran cálculos logarítmicos, como calcular el tiempo de duplicación en modelos de crecimiento poblacional o en ciertos cálculos financieros.
Ejemplo:
Otras constantes destacadas
- Math.LN10: Esta constante representa el logaritmo natural de 10, útil para escalar datos logarítmicos.
- Math.LOG2E: El logaritmo del número de Euler en base 2. Se usa para convertir logaritmos de base E a base 2.
- Math.LOG10E: El logaritmo del número de Euler en base 10, usado en contextos similares a
Math.LOG2Epero para logaritmos en base 10. - Math.SQRT1_2: Representa la raíz cuadrada de 1/2 y se usa frecuentemente en cálculos geométricos.
- Math.SQRT2: La raíz cuadrada de 2, una constante que aparece con frecuencia en álgebra, geometría e ingeniería.
Aplicaciones prácticas de las constantes Math
Comprender y utilizar estas constantes puede mejorar significativamente la funcionalidad de tus aplicaciones JavaScript. Por ejemplo, en el desarrollo de videojuegos, Math.PI es indispensable para calcular trayectorias y rotaciones. En tecnología financiera, Math.E y sus constantes logarítmicas relacionadas son cruciales para calcular intereses compuestos y planes de amortización.
Conclusión
El objeto Math proporciona redondeo, potencias, raíces, aleatoriedad, trigonometría y un conjunto de constantes útiles — todo sin necesidad de importar nada. Los puntos clave a recordar: Math es estático (sin new), los empates en Math.round() redondean hacia +Infinity, Math.trunc() es la forma predecible de eliminar la parte fraccionaria, escala Math.random() para obtener un entero en un rango, y las entradas inválidas devuelven NaN en lugar de un error.
Temas relacionados
- JavaScript Numbers — literales numéricos, precisión y conversión
- JavaScript Operators — aritmética, incluido el operador de exponenciación
** - JavaScript Functions — encapsula matemáticas reutilizables, como el helper
randomIntde arriba - Comparison Operators — combínalos con
Math.max/Math.minpara verificaciones de límites