JavaScript Math 物件常用方法

Math 是 JavaScript 的原生物件,提供各種數學功能。Math 物件是目前 JavaScript 原生物件裡唯一一個不是建構函數,不用實例化,所有的屬性和方法都是直接在 Math 物件上調用。

Math.abs()

Math.abs() 方法接受一個參數,返回該參數的絕對值,通俗的說法就是把任何一個數值返回一個正整數

1
2
Math.abs(10)  // 10
Math.abs(-10) // 10

Math.ceil()

Math.ceil() 方法接受一個參數,並返回不小於該參數且最接近它的整數,即無條件進位

1
Math.ceil(10.01) // 11

Math.floor()

和 Math.ceil() 相反,即無條件捨去

1
Math.floor(10.9) // 10

Math.round()

Math.round() 接受一個數字參數,並回傳該參數四捨五入後的值

1
Math.round(1.499) // 1
1
Math.round(1.501) // 2

Math.min()

Math.min() 方法接受多個參數,並回傳當中最小的數

1
Math.min(1, 2, 3, 4, 5) // 1

Math.max()

Math.max() 方法接受多個參數,並回傳當中最大的數

1
Math.max(1, 2, 3, 4, 5) // 5

補充: Math.max()Math.min() 不接受物件陣列參數,若需要取陣列中最大或是最小數可以用下列方法

apply 的第一個參數可以自定義的該函數所指向的 this,在此例中不需特別指定,帶入 null 即可。第二個參數為呼叫 apply 方法的方法(即下例的 Math.max 方法)預設帶入的參數,要注意的是須改以物件形式傳入,這是 apply API 的規範。

1
Math.max.apply(null, [1, 2, 3, 4, 5]) // 5

也可以使用 ES6 Spread 將陣列拆解後帶入

1
console.log(...[1, 2, 3, 4, 5]) // 1 2 3 4 5
1
Math.max(...[1, 2, 3, 4, 5]) // 5

Math.random()

Math.random() 回傳一個介於 0 到 1 的隨機數

1
Math.random() // 輸出 0 - 1 間的隨機數

產生指定區間的整數亂數

1
2
3
4
5
function getRandomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}

getRandomNum(5, 10) // 隨機回傳 5 - 10 之間的整數

[Js] math.random() / Math.floor()

使用 getRandomNum 隨機取陣列中的值

1
2
let arr = ['Dylan', 'Jack', 'Ralph', 'Tom', 'Rex']
console.log(arr[getRandomNum(0, arr.length - 1)]) // 回傳 arr 中隨機成員

Math.pow()

Math.pow(x, y) 方法接收兩個參數,回傳 x 的 y 次方

1
2
Math.pow(2, 3) // 8
Math.pow(5, 2) // 25

參考資料