Die Math.sign() Funktion gibt das Vorzeichen einer Zahl zurück, welches angibt, ob eine Zahl positiv, negativ oder 0 ist.

Syntax

Math.sign(x)

Parameter

x
Eine Zahl.

Rückgabewert

Einen Zahl, die das Vorzeichen des übergebenen Wertes repräsentiert. Wenn der Parameter eine positive Zahl ist, einen negative Zahl ist oder einen Null (0) ist, wird die FUnktion 1, -1, 0 oder -0 zurückgeben. Andernfalls wird NaN zurückgegeben.

Beschreibung

Weil sign() eine statische Funktion von Math ist, wird es immer als Math.sign() eingesetzt, jedoch nicht als Methode eines erzeugten Math Objektes (Math ist kein Konstruktor).

Diese Funktion hat die 5 mögliche Rückgabewerte 1, -1, 0, -0 und NaN, welche "positive Zahlen", "negative Zahlen", "positiv 0", "negativ 0" und NaN repräsentieren.

Der Übergebeparameter dieser Funktion wird impliziet zu einem number-Type konvertiert.

Beispiele

Einsatz von 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) {
    // If x is NaN, the result is NaN.
    // If x is -0, the result is -0.
    // If x is +0, the result is +0.
    // If x is negative and not -0, the result is -1.
    // If x is positive and not +0, the result is +1.
    return ((x > 0) - (x < 0)) || +x;
    // A more aesthetical persuado-representation is shown below
    //
    // ( (x > 0) ? 0 : 1 )  // if x is negative then negative one
    //          +           // else (because you cant be both - and +)
    // ( (x < 0) ? 0 : -1 ) // if x is positive then positive one
    //         ||           // if x is 0, -0, or NaN, or not a number,
    //         +x           // Then the result will be x, (or) if x is
    //                      // not a number, then x converts to number
  };
}

In dem oberen Polyfill ist keine extra Typ zwand für (x > 0) oder (x < 0) nötig, um Zahlen zu bekommen, weil das Subtrahieren voneinander eine Typkonvertierung von boolean zu Zahlen erzwingt.

Spezifikationen

Spezifikation Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Math.sign' in dieser Spezifikation.
Standard Initiale Definition.
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'Math.sign' in dieser Spezifikation.
Lebender Standard  

Browserkompatibilität

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung38(Ja)25Nein259
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Grundlegende Unterstützung(Ja)(Ja)(Ja)25Nein(Ja)(Ja)

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: schlagi123
 Zuletzt aktualisiert von: schlagi123,