Math es un objeto incorporado que tiene propiedades y métodos para constantes y funciones matemáticas. No es un objeto de función.

Descripción

A diferencia de los demás objetos globales, el objeto Math no se puede editar. Todas las propiedades y métodos de Math son estáticos. Usted se puede referir a la constante pi como Math.PI y puede llamar a la función seno como Math.sin(x), donde x es el argumento del método. Las constantes se definen con la precisión completa de los números reales en JavaScript.

Propiedades

Math.E
Constante de Euler, la base de los logaritmos naturales, aproximadamente 2.718
Math.LN2
Logaritmo natural de 2, aproximadamente 0.693
Math.LN10
Logaritmo natural de 10, aproximadamente 2.303
Math.LOG2E
Logaritmo de E con base 2, aproximadamente 1.443
Math.LOG10E
Logaritmo de E con base 10, aproximadamente 0.434
Math.PI
Ratio of the circumference of a circle to its diameter, approximately 3.14159.
Math.SQRT1_2
Raíz cuadrada de 1/2; Equivalentemente, 1 sobre la raíz cuadrada de 2, aproximadamente 0.707.
Math.SQRT2
Raíz cuadrada de 2, aproximadamente 1.414.

Métodos

Tenga en cuenta que las funciones trigonométricas (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) devuelven ángulos en radianes. Para convertir radianes a grados, divida por (Math.PI / 180), y multiplique por esto para convertir a la inversa.

Tenga en cuenta que muchas de las funciones matemáticas tienen una precisión que es dependiente de la implementación. Esto significa que los diferentes navegadores pueden dar un resultado diferente, e incluso el mismo motor de JS en un sistema operativo o arquitectura diferente puede dar resultados diferentes.

Math.abs(x)
Devuelve el valor absoluto de un número.
Math.acos(x)
Devuelve el arco coseno de un número.
Math.acosh(x)
Devuelve el arco coseno hiperbólico de un número.
Math.asin(x)
Devuelve el arco seno de un número.
Math.asinh(x)
Devuelve el arco seno hiperbólico de un número.
Math.atan(x)
Devuelve el arco tangente de un número.
Math.atanh(x)
Devuelve el arco tangente hiperbólico de un número.
Math.atan2(y, x)
Devuelve el arco tangente del cuociente de sus argumentos.
Math.cbrt(x)
Devuelve la raíz cúbica de un número.
Math.ceil(x)
Devuelve el entero más pequeño mayor o igual que un número.
Math.clz32(x)
Devuelve el número de ceros iniciales de un entero de 32 bits.
Math.cos(x)
Devuelve el coseno de un número.
Math.cosh(x)
Devuelve el coseno hiperbólico de un número.
Math.exp(x)
Devuelve Ex, donde x es el argumento, y E es la constante de Euler (2.718...), la base de los logaritmos naturales.
Math.expm1(x)
Devuelve ex - 1.
Math.floor(x)
Devuelve el mayor entero menor que o igual a un número.
Math.fround(x)
Devuelve la representación flotante de precisión simple más cercana de un número.
Math.hypot([x[, y[, …]]])
Devuelve la raíz cuadrada de la suma de los cuadrados de sus argumentos.
Math.imul(x, y)
Devuelve el resultado de una multiplicación de enteros de 32 bits.
Math.log(x)
Devuelve el logaritmo natural (log, también ln) de un número.
Math.log1p(x)
Devuelve el logaritmo natural de x + 1 (loge, también ln) de un número.
Math.log10(x)
Devuelve el logaritmo en base 10 de x.
Math.log2(x)
Devuelve el logaritmo en base 2 de x.
Math.max([x[, y[, …]]])
Devuelve el mayor de cero o más números.
Math.min([x[, y[, …]]])
Devuelve el más pequeño de cero o más números.
Math.pow(x, y)
Las devoluciones de base a la potencia de exponente, que es, baseexponent.
Math.random()
Devuelve un número pseudo-aleatorio entre 0 y 1.
Math.round(x)
Devuelve el valor de un número redondeado al número entero más cercano.
Math.sign(x)
Devuelve el signo de la x, que indica si x es positivo, negativo o cero.
Math.sin(x)
Devuelve el seno de un número.
Math.sinh(x)
Devuelve el seno hiperbólico de un número.
Math.sqrt(x)
Devuelve la raíz cuadrada positiva de un número.
Math.tan(x)
Devuelve la tangente de un número.
Math.tanh(x)
Devuelve la tangente hiperbólica de un número.
Math.toSource()  
Devuelve la cadena "Math".
Math.trunc(x)
Devuelve la parte entera del número x, la eliminación de los dígitos fraccionarios.

Extendiendo el objeto Math

Como muchos de los objetos incluidos en JavaScript, el objeto Math puede ser extendido con propiedades y métodos personalizados. Para extender el objeto Math no se debe usar 'prototype'. Es posible extender directamente Math:

Math.propName = propValue;
Math.methodName = methodRef;

Como demostración, el siguiente ejemplo agrega un método al objeto Math para calcular el máximo común divisor de una lista de argumentos.

/* Función variádica -- Retorna el máximo común divisor de una lista de argumentos */
Math.gcd = function() {
    if (arguments.length == 2) {
        if (arguments[1] == 0)
            return arguments[0];
        else
            return Math.gcd(arguments[1], arguments[0] % arguments[1]);
    } else if (arguments.length > 2) {
        var result = Math.gcd(arguments[0], arguments[1]);
        for (var i = 2; i < arguments.length; i++)
            result = Math.gcd(result, arguments[i]);
        return result;
    }
};

Pruébalo:

console.log(Math.gcd(20, 30, 15, 70, 40)); // `5`

Especificaciones

Especificación Estado Comentario
ECMAScript 1st Edition (ECMA-262) Standard Definición Inicial. Implementado en JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
La definición de 'Math' en esta especificación.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Math' en esta especificación.
Standard Nuevos métodos log10(), log2(), log1p(), expm1(), cosh(), sinh(), tanh(), acosh(), asinh(), atanh(), hypot(), trunc(), sign(), imul(), fround(), cbrt() y clz32() añadidos.
ECMAScript Latest Draft (ECMA-262)
La definición de 'Math' en esta especificación.
Draft  

Compatibilidad con navegadores

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
E Si Si1 Si Si Si
LN2 Si Si1 Si Si Si
LN10 Si Si1 Si Si Si
LOG2E Si Si1 Si Si Si
LOG10E Si Si1 Si Si Si
PI Si Si1 Si Si Si
SQRT1_2 Si Si1 Si Si Si
SQRT2 Si Si1 Si Si Si
abs Si Si1 Si Si Si
acos Si Si1 Si Si Si
acosh38 Si25 No258
asin Si Si1 Si Si Si
asinh38 Si25 No258
atan Si Si1 Si Si Si
atan2 Si Si1 Si Si Si
atanh38 Si25 No258
cbrt38 Si25 No258
ceil Si Si1 Si Si Si
clz3238 Si31 No25 Si
cos Si Si1 Si Si Si
cosh38 Si25 No258
exp Si Si1 Si Si Si
expm138 Si25 No258
floor Si Si1 Si Si Si
fround38 Si26 No258
hypot38 Si27 No258
imul28 Si20 No167
log Si Si1 Si Si Si
log1p38 Si25 No258
log238 Si25 No258
log1038 Si25 No258
max Si Si1 Si Si Si
min Si Si1 Si Si Si
pow Si Si1 Si Si Si
random Si Si1 Si Si Si
round Si Si1 Si Si Si
sign38 Si25 No259
sin Si Si1 Si Si Si
sinh38 Si25 No258
sqrt Si Si1 Si Si Si
tan Si Si1 Si Si Si
tanh38 Si25 No258
trunc38 Si25 No258
FeatureAndroid webviewChrome para AndroidEdge mobileFirefox para AndroidOpera AndroidiOS SafariSamsung Internet
E Si Si Si4 Si Si Si
LN2 Si Si Si4 Si Si Si
LN10 Si Si Si4 Si Si Si
LOG2E Si Si Si4 Si Si Si
LOG10E Si Si Si4 Si Si Si
PI Si Si Si4 Si Si Si
SQRT1_2 Si Si Si4 Si Si Si
SQRT2 Si Si Si4 Si Si Si
abs Si Si Si4 Si Si Si
acos Si Si Si4 Si Si Si
acosh Si Si Si25 Si8 Si
asin Si Si Si4 Si Si Si
asinh Si Si Si25 Si8 Si
atan Si Si Si4 Si Si Si
atan2 Si Si Si4 Si Si Si
atanh Si Si Si25 Si8 Si
cbrt Si Si Si25 Si8 Si
ceil Si Si Si4 Si Si Si
clz32 Si Si Si31 Si Si Si
cos Si Si Si4 Si Si Si
cosh Si Si Si25 Si8 Si
exp Si Si Si4 Si Si Si
expm1 Si Si Si25 Si8 Si
floor Si Si Si4 Si Si Si
fround Si Si Si26 Si8 Si
hypot Si Si Si27 Si8 Si
imul Si Si Si20 Si7 Si
log Si Si Si4 Si Si Si
log1p Si Si Si25 Si8 Si
log2 Si Si Si25 Si8 Si
log10 Si Si Si25 Si8 Si
max Si Si Si4 Si Si Si
min Si Si Si4 Si Si Si
pow Si Si Si4 Si Si Si
random Si Si Si4 Si Si Si
round Si Si Si4 Si Si Si
sign Si Si Si25 Si Si Si
sin Si Si Si4 Si Si Si
sinh Si Si Si25 Si8 Si
sqrt Si Si Si4 Si Si Si
tan Si Si Si4 Si Si Si
tanh Si Si Si25 Si8 Si
trunc Si Si Si25 Si8 Si

Ver también

Etiquetas y colaboradores del documento

Etiquetas: 
Última actualización por: lajaso,