--- title: Math.sign() slug: Web/JavaScript/Reference/Global_Objects/Math/sign translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign ---
Math.sign()
fonksiyonu, parametre olarak aldığı sayının negatif (-1) veya pozitif (1) olduğu bilgisini döndürür. Parametre olarak 0 gönderilirse, +/- 0 döndürür. Sayı pozitifse ayrıca + işareti döndürülmez.Math.sign(x)
x
number
, it is implicitly converted to one.A number representing the sign of the given argument:
1
.-1
.0
.-0
.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).
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 aesthetic pseudo-representation: // // ( (x > 0) ? 1 : 0 ) // if x is positive, then positive one // + // else (because you can't be both - and +) // ( (x < 0) ? -1 : 0 ) // if x is negative, then negative 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 the above polyfill, no extra type-coercing is needed to make (x > 0)
or (x < 0)
numbers because subtracting them from each other forces a type conversion from booleans to numbers.
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
Specification |
---|
{{SpecName('ESDraft', '#sec-math.sign', 'Math.sign')}} |
{{Compat("javascript.builtins.Math.sign")}}