Back

# Math.sign

## Math.sign

The `Math.sign()` function returns the sign of a number, indicating whether the number is positive, negative or zero.

## Syntax

``Math.sign(x)``

`x`
A number.

## Description

Because `sign()` is a static method of `Math`, you always use it as `Math.sign()`, rather than as a method of a `Math` object you created (`Math` is not a constructor).

This function has 5 kinds of return values, `1`, `-1`, `0`, `-0`, `NaN`, which represent "positive number", "negative number", "positive zero", "negative zero" and NaN respectively.

The argument passed to this function will be converted to `x` type implicitly.

## Examples

### Using `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

```Math.sign = Math.sign || function(x) {
x = +x; // convert to a number
if (x === 0 || isNaN(x)) {
return x;
}
return x > 0 ? 1 : -1;
}
```