La función Math.sign() retorna el signo de un número, indicando si el número es positivo, negativo o cero.

Syntaxis

Math.sign(x)

Parametros

x
Un número.

Valor de retorno.

Un número representando el signo del argumento dado. Si el argumento es un número positivo, negativo, cero positivo, o cero negativo, la función retornará 1, -1, 0 or -0 respectivamente. De lo contrario, retorna NaN.

Descripción

Como sign() es un método estático de Math, siempre se utiliza como Math.sign(), en vez de un método de un objeto Math que hayas creado. (Math no es un constructor).

Esta función tiene 5 tipos de valores de retorno, 1, -1, 0, -0, NaN, que representan "número positivo", "número negativo", "cero positivo", "cero negativo" y NaN respectivamente.

El argumento pasado a esta función será convertido a tipo x implicitamente.

Ejemplos

Usando Math.sign()

Math.sign(3);     //  1
Math.sign(-3);    // -1
Math.sign('-3');  // -1
Math.sign(0);     //  0
Math.sign(-0);    // -0
Math.sign(NaN);   // NaN
Math.sign('foo'); // NaN
Math.sign();      // NaN

Polyfill

if (!Math.sign) {
  Math.sign = function(x) {
    // Si x es NaN, el resultado es NaN.
    // Si x es -0, el resultado es -0.
    // Si x es +0, el resultado es +0.
    // Si x es negativo y no -0, el resultado es -1.
    // Si x es positivo y no +0, el resultado es +1.
    x = +x; // convertir a número
    if (x === 0 || isNaN(x)) {
      return Number(x);
    }
    return x > 0 ? 1 : -1;
  };
}

Especificaciones

Especificación Estado Comentario
ECMAScript 2015 (6th Edition, ECMA-262)
La definición de 'Math.sign' en esta especificación.
Standard Definición inicial.
ECMAScript Latest Draft (ECMA-262)
La definición de 'Math.sign' en esta especificación.
Draft  

Compatibilidad con navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Propiedad Chrome Firefox (Gecko) Internet Explorer Opera Safari
Soporte básico 38 25 (25) Sin soporte 25 9
Propiedad Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Soporte básico Sin soporte Sin soporte 25.0 (25) Sin soporte Sin soporte Sin soporte

Ver También

Etiquetas y colaboradores del documento

Colaboradores en esta página: Vickysolo, frankman123
Última actualización por: Vickysolo,