- Math 是一個内置對象, 它具有數學常數和函數的屬性和方法。不是一個函數對象。
- Math 适用于 Number 類型。它不支援 BigInt。
- 與其他全局對象不同的是,
不是一個構造器。Math
的所有屬性與方法都是靜态的。Math
Math的相關屬性
- Math.E 屬性表示自然對數的底數(或稱為基數),e,約等于 2.718。(2.718281828459045)
- Math.LN10屬性表示 10 的自然對數,約為 2.302:
- Math.LN2屬性表示 2 的自然對數,約為 0.693:
- Math.LOG10E屬性表示以 10 為底數,e 的對數,約為 0.434:
- Math.LOG2E屬性表示以 2 為底數,e 的對數,約為 1.442:
- Math.PI表示一個圓的周長與直徑的比例,約為 3.14159:
- Math.SQRT1_2屬性表示 1/2 的平方根,約為 0.707:
- Math.SQRT2屬性表示 2 的平方根,約為 1.414:
Math的相關方法
Math.abs(x)
函數傳回指定數字 “x“ 的絕對值。
傳入一個非數字形式的字元串或者 undefined/empty 變量,将傳回
NaN
。傳入 null 将傳回 0。
Math.abs('-1'); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("123string"); // NaN
Math.abs(); // NaN
Math.abs(undefined) // NaN
Math.ceil()
Math.abs('-1.1'); // 1
Math.abs(2.1); // 3
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN
Math.floor()
傳回小于或等于一個給定數字的最大整數。
Math.floor(45.95) // 45
Math.floor(4) // 4
Math.floor(-45.05)// -46
Math.max()
函數傳回一組數中的最大值。
傳回給定的一組數字中的最大值。如果給定的參數中至少有一個參數無法被轉換成數字,則會傳回 NaN。如果沒有參數,則結果為 - Infinity。
Math.max(10, 20,30); // 30
Math.max.call(null,10, 20,30); // 30
Math.max.apply(null,[10, 20,30]); // 30
Math.max(10, 20, 30 , 'test'); //NaN
Math.max() // -Infinity
Math.min()
傳回零個或更多個數值的最小值。
Math.min(10, 20,30); // 10
Math.min.call(null,10, 20,30); // 10
Math.min.apply(null,[10, 20,30]); // 10
Math.min(10, 20, 30 , 'test'); // NaN
Math.min() // Infinity
Math.pow()
函數傳回基數(
base
)的指數(
exponent
)次幂
,即
baseexponent
。
Math.pow(2, 3) // 2的三次方 = 8
Math.random()
函數傳回一個浮點, 僞随機數在範圍[0,1),也就是說,從0(包括0)往上,但是不包括1(排除1)
Math.random()
Math.round()
函數傳回一個數字四舍五入後最接近的整數。
Math.round(-21.49) // -21
Math.sign()
此函數共有5種傳回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正數, 負數, 正零, 負零, NaN。
傳入該函數的參數會被隐式轉換成數字類型。
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
Math.trunc(13.37) // 13
Math.trunc(42.84) // 42
Math.trunc(0.123) // 0
Math.trunc(-0.123) // -0
Math.trunc("-1.123") // -1
Math.trunc(NaN) // NaN
Math.trunc("foo") // NaN
Math.trunc() // NaN
Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN