JavaScript中Math對象的方法介紹
1.比較最值方法
比較最值有兩種方法,max() 和 min() 方法。
1.1 max() 方法,比較一組數(shù)值中的最大值,返回最大值。
var maxnum = Math.max(12,6,43,58,70); alert(maxnum); //"70"
1.2 min() 方法,比較一組數(shù)值中的最小值,返回最小值。
var minnum = Math.min(12,6,43,58,70); alert(minnum); //"6"
2.數(shù)值舍入方法
2.1 ceil() 方法,將數(shù)值向上舍入為最接近的整數(shù)。
alert(Math.ceil(6.1)); //"7" alert(Math.ceil(6.5)); //"7" alert(Math.ceil(6.9)); //"7"
不管6后面的小數(shù)位是幾,該方法總是向上舍入,結(jié)果都是7。
2.2 floor() 方法,將數(shù)值向下舍入為最接近的整數(shù)。
alert(Math.floor(6.1)); //"6" alert(Math.floor(6.5)); //"6" alert(Math.floor(6.9)); //"6"
不管6后面的小數(shù)位是幾,該方法總是向下舍入,結(jié)果都是6。
2.3 round() 方法,將數(shù)值四舍五入為最接近的整數(shù)。
alert(Math.round(6.1)); //"6" alert(Math.round(6.5)); //"7" alert(Math.round(6.9)); //"7"
該方法四舍五入,和我們小學(xué)時(shí)學(xué)的舍入規(guī)則一致。
3.產(chǎn)生隨機(jī)數(shù)方法
random() 方法,返回一個大于等于0小于1的隨機(jī)數(shù),其實(shí)是小數(shù)值。隨機(jī)數(shù)范圍用區(qū)間表示即為[0,1),包含0不包含1。
這里有一個公式:
返回的值 = Math.floor(Math.random() * 可能值的總數(shù) + 第一個可能的值),
套用這個公式可以返回某個整數(shù)范圍內(nèi)的隨機(jī)數(shù)。
我們注意到了上面的公式中調(diào)用了 floor() 方法,因?yàn)?random() 總是返回一個小數(shù),而我們要返回的是整數(shù),所以得對其返回值進(jìn)行舍入操作。
比如我們要隨機(jī)產(chǎn)生1到10之間的整數(shù),[1,10],包含1和10,可以套用公式編寫下面的代碼:
var num = Math.floor(Math.random() * 10 + 1);
[1,10] 之間包含10個數(shù),因此可能值的總數(shù)是10,則 random()*10,即產(chǎn)生 [0,10) 之間的隨機(jī)數(shù);
第一個可能的值是1,則 random()*10+1,即產(chǎn)生 [1,11) 之間的隨機(jī)數(shù);
此時(shí)它產(chǎn)生的最小整數(shù)是1了,但最大整數(shù)并不是10,它會產(chǎn)生10.xxxxxxxxxx 這樣的小數(shù),于是用 floor() 將其向下舍入,這樣它產(chǎn)生的最大整數(shù)就是10了。
如果要隨機(jī)產(chǎn)生 [5,10] 之間的整數(shù),那么套用公式即可編寫這樣的代碼:
var num = Math.floor(Math.random() * 6 + 5);
[5,10] 之間包含6個數(shù),所以可能值的總數(shù)是6,則 random()*6;第一個可能的值是5,所以 random()*6+5;最后用 floor() 將其向下舍入。
其他情況可以自己舉例推算。
4.其他計(jì)算方法
下面的這樣方法都是用來進(jìn)行各種簡單或復(fù)雜的計(jì)算。
Math.abs(num) 返回 num 的絕對值
Math.exp(num) 返回 Math.E 的 num 次冪
Math.log(num) 返回 num 的自然對數(shù)
Math.pow(num,power) 返回 num 的 power 次冪
Math.sqrt(num) 返回 num 的平方根
Math.acos(x) 返回 x 的反余弦值
Math.asin(x) 返回 x 的反正弦值
Math.atan(x) 返回 x 的反正切值
Math.atan2(y,x) 返回 y/x 的反正切值
Math.cos(x) 返回 x 的余弦值
Math.sin(x) 返回 x 的正弦值
Math.tan(x) 返回 x 的正切值
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
利用canvas實(shí)現(xiàn)的加載動畫效果實(shí)例代碼
之前看到一個Android的加載效果不錯,一直想自己動手做一個,正好這段時(shí)間重溫了一個Canvas,所以就嘗試了一下。下面這篇文章主要給大家介紹了關(guān)于利用canvas實(shí)現(xiàn)加載效果的相關(guān)資料,需要的朋友可以參考下。2017-07-07JavaScript快速排序(quickSort)算法的實(shí)現(xiàn)方法總結(jié)
快速排序的思想式 分治法,選一個基準(zhǔn)點(diǎn),然后根據(jù)大小進(jìn)行分配,分配然完畢之后,對已經(jīng)分配的進(jìn)行遞歸操作,最終形成快速排序,所以遞歸也是快速排序思想的一個重要組成部分,本文主要給大家介紹了JavaScript實(shí)現(xiàn)快速排序的寫法,需要的朋友可以參考下2023-11-11javascript實(shí)現(xiàn)固定側(cè)邊欄
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)固定側(cè)邊欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02外部web端訪問微信小程序云數(shù)據(jù)庫的三種方法總結(jié)
最近在研究微信小程序的云開發(fā)功能,下面這篇文章主要給大家介紹了關(guān)于外部web端訪問微信小程序云數(shù)據(jù)庫的三種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Js實(shí)現(xiàn)手機(jī)發(fā)送驗(yàn)證碼時(shí)按鈕延遲操作
在做項(xiàng)目的時(shí)候,經(jīng)常遇到發(fā)短信驗(yàn)證碼的問題,這時(shí)候需要用戶點(diǎn)完發(fā)送驗(yàn)證碼按鈕后,一段時(shí)間內(nèi)不能重復(fù)點(diǎn)擊,畢竟驗(yàn)證碼都是收費(fèi)的嘛,誰都不想浪費(fèi),那么如何實(shí)現(xiàn)這種功能呢?下面來分享一下。2014-06-06js 動態(tài)為textbox添加下拉框數(shù)據(jù)源的方法
這篇文章主要介紹了js 動態(tài)為textbox添加下拉框數(shù)據(jù)源的方法,需要的朋友可以參考下2014-04-04javascript打造跨瀏覽器事件處理機(jī)制[Blue-Dream出品]
由于瀏覽器兼容的復(fù)雜性.打造一個較優(yōu)的跨瀏覽器事件處理函數(shù).不是件容易的事情.各大類庫也都通過了種種方案去抽象一個龐大的事件機(jī)制.2010-07-07