目錄
導(dǎo)語(yǔ)
1. Math對(duì)象
2. Date對(duì)象
3. Date對(duì)象方法的應(yīng)用——日歷插件;
4. 小結(jié)
導(dǎo)語(yǔ)
這是《JavaScript標(biāo)準(zhǔn)庫(kù)系列》的第二篇文章,主要討論一下Math對(duì)象和Date對(duì)象,Math對(duì)象在平時(shí)處理一些數(shù)學(xué)操作時(shí)能起到事半功倍的作用,目前小羊接觸到的Math對(duì)象的使用場(chǎng)景是動(dòng)畫制作;
Date對(duì)象作為關(guān)于時(shí)間的接口,能夠?qū)⑵鋺?yīng)用于制作和時(shí)間相關(guān)的應(yīng)用,下文給出一個(gè)日歷小插件作為該對(duì)象的實(shí)際應(yīng)用;
1.Math對(duì)象
Math對(duì)象提供了數(shù)學(xué)當(dāng)中常見(jiàn)的屬性和方法,注意的是Math對(duì)象并不是構(gòu)造函數(shù);
Math對(duì)象的方法的其中一個(gè)應(yīng)用是在制作復(fù)雜的動(dòng)畫特效時(shí)能派上大用場(chǎng),因此對(duì)動(dòng)畫制作感興趣的童鞋要掌握好;
1.1Math對(duì)象的屬性
Math對(duì)象的屬性定義常見(jiàn)的數(shù)學(xué)常量:

1.2 Math對(duì)象的方法
- 最值方法
Math.min && Math.max:根據(jù)參數(shù)返回最值;

可利用該方法去獲取數(shù)組的最值;

- 舍入方法
Math.floor:向下取整;
Math.ceil:向上取整;
Math.round:四舍五入取整;

- 隨機(jī)數(shù)方法
Math.random:返回0~1(不包含1)的隨機(jī)數(shù);
可以通過(guò)以下方法獲取任意范圍的隨機(jī)數(shù):
//獲取0~9的數(shù)值
Math.floor(Math.random()*10)
//獲取1~10的數(shù)值
Math.floor(Math.random()*10+1)
//獲取任意范圍的數(shù)值
function randomNum(min,max){
if(min-max>0){
var mid = min;
min = max;
max = mid;
}
var range = max - min + 1
return Math.floor(Math.random()*range+min);
};
//html
<div id="colors" >Hello World
</div>
//js
var $colors = $('#colors')
setInterval(function(){
var pipeRed = randomNum(0,255),
pipeGreen = randomNum(0,255),
pipeBlue = randomNum(0,255);
color = "rgb("+pipeRed+","+pipeGreen+","+pipeBlue+")";
$colors.css({
"background":color,
})
console.log(color)
},1000)

-
基本數(shù)學(xué)函數(shù)方法
-
三角函數(shù)方法
【注】:
關(guān)于三角函數(shù)方法的應(yīng)用,可以參考小羊的《基于Canvas的動(dòng)畫基本原理與數(shù)理分析》一文;
2. Date對(duì)象
Date對(duì)象使用自UTC1970年1月1日零時(shí)開(kāi)始的經(jīng)過(guò)的毫秒數(shù)來(lái)保存時(shí)間,時(shí)間范圍為該時(shí)期前后1億天;
2.1 Date對(duì)象作為工具方法
-
Date對(duì)象自身的方法
Date對(duì)象作為方法使用,帶不帶參數(shù)都返回當(dāng)前的時(shí)間的字符串
注意:new Date()返回的是對(duì)象,雖然二者看上去很像;

- Date對(duì)象的靜態(tài)方法
Date.now():返回當(dāng)前距離1970年1月1日 00:00:00 UTC的毫秒數(shù);

Date.UTC():返回設(shè)置的參數(shù)距離1970年1月1日 00:00:00 UTC的毫秒數(shù),參數(shù)格式為:
year, month[, date[, hrs[, min[, sec[, ms]]]]]

[注]12個(gè)月份分別有0~11表示,上面的11代表12月;
Date.parse():解析日期字符串,返回當(dāng)前距離1970年1月1日 00:00:00 UTC的毫秒數(shù);

[注]可傳遞的日期字符串不僅限于上述,但是一般采用上面3種日期字符串表示方法;
Date.parse()和Date.UTC()作用類似;
2.2 Date對(duì)象的實(shí)例方法
-
Date作為構(gòu)造函數(shù)
Date作為構(gòu)造函數(shù)時(shí),可以生成一個(gè)時(shí)間對(duì)象的實(shí)例, 不傳參數(shù)將返回當(dāng)前的時(shí)間對(duì)象實(shí)例,傳遞的參數(shù)可以是多個(gè)代表日期的數(shù)值,也可以是日期字符串,還可以是代表時(shí)間的毫秒數(shù);
使用代表日期的數(shù)值設(shè)置時(shí)間時(shí)要注意各個(gè)參數(shù)的取值范圍:
year: 4位年份;
month: 0-11,這個(gè)要注意;
date:1-31;
hour:0-23;
minute:0-59;
second:0-59
ms:0-999
-
Date對(duì)象的實(shí)例方法
阮一峰的《JavaScript標(biāo)準(zhǔn)參考教程》總結(jié)了3大類方法,小羊根據(jù)其教程篩選了比較常用to類方法,詳見(jiàn)阮一峰的教程;
to類方法
toString:返回當(dāng)前時(shí)區(qū)的時(shí)期字符串;
toUTCString:返回當(dāng)前0時(shí)區(qū)的時(shí)期字符串;
toDateString:返回日期字符串;
toTimeString:返回時(shí)間字符串;
toLocalTimeString:返回當(dāng)?shù)乇憩F(xiàn)形式的時(shí)間字符串


get類方法
getFullYear:獲取實(shí)例的四位年份;
getMonth:獲取月份(0表1月,11表12月);
getDate:獲取第幾天;
getDay:獲取星期(0為星期日,6為星期六);
getHours:返回小時(shí);
getMinutes:返回分鐘;
getSeconds:返回秒;
getMilliseconds:返回毫秒;
getTime():返回距離1970年1月1日00:00:00的毫秒數(shù),相當(dāng)于valueOf();

set類方法
setFullYear:設(shè)置實(shí)例的四位年份;
setMonth:設(shè)置月份;
setDate:設(shè)置日子;
setHours:設(shè)置小時(shí);
setMinutes:設(shè)置分鐘;
setSeconds:設(shè)置秒;
setMilliseconds:設(shè)置毫秒;
setTime:設(shè)置毫秒時(shí)間戳;

3.3. Date對(duì)象方法的應(yīng)用——日歷插件;
日期插件件詳見(jiàn)小羊的文章《[簡(jiǎn)潔的jQuery日歷小插件]》;
4. 小結(jié)
通讀本文之后,我們可以基本清楚理解:
- Math對(duì)象提供數(shù)學(xué)當(dāng)中常用的屬性和方法;
- Math對(duì)象的屬性包括
PI、E、LN2、LN10、LOG2E、LOG10E; - MAth對(duì)象的方法包括最值方法、舍入方法、隨機(jī)數(shù)方法、基本數(shù)學(xué)函數(shù)方法和三角函數(shù)方法;
- Date對(duì)象的使用可分為Date對(duì)象作為工具方法和Date對(duì)象的實(shí)例方法;
- Date對(duì)象作為工具方法部分,
Date()直接返回當(dāng)前時(shí)間的字符串,注意和new Date()的區(qū)別;Date.now()返回當(dāng)前距離起始日期的毫秒數(shù);Date.parse()可以解析日期為毫秒數(shù); - Date對(duì)象可作為構(gòu)造函數(shù)創(chuàng)建一個(gè)日期實(shí)例,可傳遞多種形式的日期參數(shù);但要注意不同時(shí)間參數(shù)的取值范圍的不同;
- Date對(duì)象的實(shí)例方法可大致分為3大類,to類、get類和set類;其中除了getDay()這一方法在set類中沒(méi)有對(duì)應(yīng)方法外,其他get類都有對(duì)應(yīng)set類方法;
參考資料
- 《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》
- 《JavaScript標(biāo)準(zhǔn)參考教程》——阮一峰



