Math對象
Math對象是JavaScript的內(nèi)置對象,提供一系列數(shù)學(xué)常數(shù)和數(shù)學(xué)方法。Math對象只提供了靜態(tài)的屬性和方法,使用時直接使用即可。
屬性
Math對象提供以下一些只讀的數(shù)學(xué)常數(shù)。
Math.E // 2.718281828459045
Math.LN2 // 0.6931471805599453
Math.LN10 // 2.302585092994046
Math.LOG2E // 1.4426950408889634
Math.LOG10E // 0.4342944819032518
Math.PI // 3.141592653589793
Math.SQRT1_2 // 0.7071067811865476
Math.SQRT2 // 1.4142135623730951
方法
round
round方法用于四舍五入
Math.round(0.1) // 0
Math.round(0.5) // 1
Math.round(-1.1) // -1
Math.round(-1.5) // -1
它對于負值的運算結(jié)果與正值略有不同,主要體現(xiàn)在對.5的處理
abs,max,min
abs方法返回參數(shù)值的絕對值
max方法返回最大的參數(shù),min方法返回最小的參數(shù)
Math.abs(1) // 1
Math.abs(-1) // 1
Math.max(2, -1, 5) // 5
Math.min(2, -1, 5) // -1
max方法返回最大的參數(shù),min方法返回最小的參數(shù)
兩個方法用來獲取給定的一組數(shù)值中的最大值或最小值,但是卻不接受數(shù)組作為參數(shù)。
可以通過一種方法來調(diào)用Math.max和Math.min
var a = [1,5,9,-9]
Math.min.apply(null,a)//-9;
floor,ceil
floor方法返回小于參數(shù)值的最大整數(shù)
ceil方法返回大于參數(shù)值的最小整數(shù)
Math.floor(3.2) // 3
Math.floor(-3.2) // -4
Math.ceil(3.2) // 4
Math.ceil(-3.2) // -3
random
該方法返回0到1之間的一個偽隨機數(shù),可能等于0,但是一定小于1
Math.random()
// 返回給定范圍內(nèi)的隨機數(shù)
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
// 返回給定范圍內(nèi)的隨機整數(shù)
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
我們可以通過靈活使用這個方法來生成任何我們想要得到的隨機數(shù)
Math.random() //產(chǎn)生0至1之間的隨機數(shù)
Math.random()*10 //產(chǎn)生至10之間的隨機數(shù)
Math.floor(Math.random()*100)//產(chǎn)生0到100之間的隨機數(shù),取整
Math.floor(Math.random()*255)//產(chǎn)生0到255之間的隨機數(shù),取整
10 + Math.floor(Math.random()*10)//產(chǎn)生10到20之間的隨機整數(shù)
小擴展
創(chuàng)建一個函數(shù),使之能生成一個指定長度的隨機字符串,字符串內(nèi)容可以由大小寫英文字母,數(shù)字,下劃線組成
function randomStr(len){
var str = ''
var dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_'
for (var i = 0;i < len;i++){
var index = Math.floor(Math.random()*dict.length)
str += dict[index]
}
return str
}
var str = randomStr(len)//len為生成字符串的長度
console.log(str)
創(chuàng)建一個函數(shù),使之生成一個隨機IP地址
function randomIP(){
var str = []
for (var i = 0;i < 4;i++){
var index = Math.floor(Math.random()*255)
str[i] = index
}
return str
}
var str = randomIP()
var IP = str.join('.')
console.log(IP)
Data對象
Date對象是JavaScript提供的日期和時間的操作接口
Date對象有幾個靜態(tài)方法
Date.now()
now方法返回當(dāng)前距離1970年1月1日00:00:00的毫秒數(shù)
Date.parse()
parse方法用來解析日期字符串,返回距離1970年1月1日 00:00:00的毫秒數(shù)
日期字符串的格式應(yīng)該完全或者部分符合YYYY-MM-DDTHH:mm:ss.sssZ格式,Z表示時區(qū),是可選的
如果解析失敗,返回NaN
Date.parse("January 26, 2011 13:51:50")//1296021110000
Date.parse("Mon, 25 Dec 1995 13:30:00 GMT")//819898200000
Date.parse("Mon, 25 Dec 1995 13:30:00 +0430")//819882000000
Date.parse("2011-10-10")//1318204800000
Date.parse("2011-10-10T14:48:00")//1318229280000
Date.UTC()
默認情況下,Date對象返回的都是當(dāng)前時區(qū)的時間
Date.UTC方法可以返回UTC時間。該方法接受年、月、日等變量作為參數(shù),返回當(dāng)前距離1970年1月1日 00:00:00 UTC的毫秒數(shù)
Date()
Date函數(shù)可以直接調(diào)用,返回一個當(dāng)前日期和時間的字符串,這時候是否有參數(shù)結(jié)果一樣