Math是JS的內(nèi)置對(duì)象,提供一系列數(shù)學(xué)常數(shù)和數(shù)學(xué)方法伏穆。該對(duì)象不是構(gòu)造函數(shù),不能生成實(shí)例纷纫,所有的屬性和方法都必須在Math對(duì)象上調(diào)用枕扫。
new Math()
// TypeError: object is not a function
上面代碼表示,Math
不能當(dāng)作構(gòu)造函數(shù)用辱魁。
一烟瞧、屬性
Math
對(duì)象提供以下一些只讀的數(shù)學(xué)常數(shù)。(知道這么回事就好商叹,沒(méi)用過(guò))
二燕刻、方法
Math
對(duì)象提供以下一些常用的數(shù)學(xué)方法。
Math.max():最大值
Math.min():最小值
Math.floor():向下取整
Math.ceil():向上取整
Math.round():四舍五入
Math.random():隨機(jī)數(shù)
-
Math.max
方法和Math.min
方法都可以接受多個(gè)參數(shù)剖笙,Math.max
返回其中最大的參數(shù)卵洗,Math.min
返回最小的參數(shù)。
Math.max(2, -1, 5) // 5
Math.min(2, -1, 5) // -1
-
Math.floor
方法接受一個(gè)參數(shù)弥咪,返回小于該參數(shù)的最大整數(shù)过蹂。
Math.floor(3.2) // 3
Math.floor(-3.2) // -4
-
Math.ceil
方法接受一個(gè)參數(shù),返回大于該參數(shù)的最小整數(shù)聚至。
Math.ceil(3.2) // 4
Math.ceil(-3.2) // -3
如果需要總是返回某個(gè)數(shù)值整數(shù)部分的函數(shù)酷勺,可以自己實(shí)現(xiàn):
function ToInteger(x) {
x = Number(x);
return x < 0 ? Math.ceil(x) : Math.floor(x);
}
上面代碼中,不管正數(shù)或負(fù)數(shù)扳躬,ToInteger
函數(shù)總是返回一個(gè)數(shù)值的整數(shù)部分脆诉。
-
Math.round
方法用于四舍五入甚亭。
Math.round(0.1) // 0
Math.round(0.5) // 1
Math.round(0.6) // 1
注意,它對(duì)負(fù)數(shù)的處理击胜,主要是對(duì)0.5的處理亏狰。
Math.round(-1.1) // -1
Math.round(-1.5) // -1
Math.round(-1.6) // -2
2.1、Math.random()
這個(gè)是Math
對(duì)象中最靈活也是最常用最重要的方法了偶摔。
該方法返回0到1之間的一個(gè)偽隨機(jī)數(shù)(計(jì)算機(jī)沒(méi)有隨機(jī)數(shù)暇唾,都是確定的數(shù)),可能等于0辰斋,但是一定小于1策州。
- 任意給定范圍的隨機(jī)數(shù)生成函數(shù):
function getRandom(min, max){
return Math.random()*(max-min)+min;
}
- 任意給定范圍的隨機(jī)整數(shù)生成函數(shù):
function getRandom(min, max){
return Math.floor( Math.random()*(max-min+1)+min );
}
- 返回隨機(jī)字符:
function random_str(length) {
var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
ALPHABET += 'abcdefghijklmnopqrstuvwxyz';
ALPHABET += '0123456789-_';
var str = '';
for (var i=0; i < length; ++i) {
var rand = Math.floor(Math.random() * ALPHABET.length);
str += ALPHABET.substring(rand, rand + 1);
}
return str;
}
random_str(6) // "NdQKOr"
上面代碼中,random_str
函數(shù)接受一個(gè)整數(shù)作為參數(shù)宫仗,返回變量ALPHABET
內(nèi)的隨機(jī)字符所組成的指定長(zhǎng)度的字符串够挂。
2.2、三角函數(shù)方法
Math
對(duì)象還提供一系列三角函數(shù)方法藕夫。
Math.sin():返回參數(shù)的正弦
Math.cos():返回參數(shù)的余弦
Math.tan():返回參數(shù)的正切
Math.asin():返回參數(shù)的反正弦(弧度值)
Math.acos():返回參數(shù)的反余弦(弧度值)
Math.atan():返回參數(shù)的反正切(弧度值)
(本系列下一節(jié)為 — JSON對(duì)象)