JavaScript筆記(五)

來源:互聯網
上載者:User

標籤:記錄   提前   如何   參與   indexof   get   轉換   n+1   正則匹配   

 

API:
尋找關鍵詞:4種:
1.尋找固定關鍵詞的位置:
var i=str.indexOf("關鍵詞",fromi);
var i=str.lastIndexOf("關鍵詞",fromi);
問題:不支援正則
2.判斷有沒有包含和正則匹配的關鍵詞:
var i=str.search(reg);
問題:永遠從0位置開始,始終只能找第一個
3.獲得所有關鍵詞內容:
var kwords=str.match(reg); //加g
問題:無法獲得每個關鍵詞的位置
4.即找每個關鍵詞的內容,又找位置。
var arr=reg.exec(str);
在str中找下*一個*關鍵詞的內容和位置,儲存在數組arr中。
補:reg對象的lastIndex屬性:
表示下次從lastIndex位置開始匹配
預設為0
原理:
1.用reg去str中匹配一個關鍵詞
2.將本次找到的關鍵詞內容,放在arr的第一個元素中,同時將關鍵詞的位置,記錄在arr.index屬性中。
3.自動將reg的lastIndex屬性調整為當前位置之後。
傳回值:
如果找到:同match不加g時
arr[0]->本次找到的完整關鍵詞
如果正則中有分組:
arr[1]->獲得第1個分組的子內容
arr.index->本次關鍵詞的位置
沒找到:返回null
如何使用: 用迴圈,反覆調用exec,直到返回null為止。


正則:
貪婪模式:預設匹配盡量長的符合規則的字字串。
懶惰模式:讓正則僅匹配最短的符合規則的字串。
貪婪改懶惰: .*? .+?

驗證格式:
var bool=reg.test(str);
驗證str是否滿足reg的格式要求。
滿足,返回true,不滿足返回false
強調: 一般驗證都是要從頭到尾完整匹配
都要前加^,後加$。

2. Math:專門封裝數學計算所用的API或常量
何時使用:只要執行數學計算
建立: Math不能new!
API:所有API都用Math直接調用
1. 取整:
1. 上取整: 只要小數點超過,就取下一個整數
num=Math.ceil(num)
2. 下取整: 捨棄小數部分
num=Math.floor(num);只能對純數字下取整
vs parseInt(str):
轉換為number
去掉結尾的非數字字元
捨棄小數部分
3. 四捨五入取整:
num=Math.round(num);
強調:只能取整,不能設定小數位元
vs n.toFixed(d)
參數:round無法指定小數位置,只能取整
toFixed(d)可指定小數位元,可按任意小數位元四捨五入。
傳回值: round返回num,可直接參与算術計算。
toFixed(d)返回str,參與+法計算時,要提前類型轉化。
強調:小心舍入誤差:

2. 乘方和開平方:
Math.pow(底數,冪)
Math.sqrt(num) 開平方

 

Math
最大值和最小值:
Math.max(值1,值2,...)
Math.min(值1,值2,...)
強調: max和min不支援數群組類型的參數
無法獲得數組中的最大值
解決:Math.max.apply(null,arr);
擷取arr數組中的最大值

隨機數:
Math.random(): 0<=r<1
公式:從任意min~max之間去一個隨機整數
parseInt(Math.random()*(max-min+1)+min)
如果從0~max之間
parseInt(Math.random()*(max+1))

2.Date:
什麼是:封裝一個時間
提供操作時間的API
何時使用: 只要儲存時間或日期,以及對時間進行操作時。
建立: 3種:
1. 建立日期對象,儲存目前時間:
var now=new Date();
強調:now封裝的是用戶端本地時間。
2. 建立日期對象,儲存自訂時間:2種
var date=
new Date("yyyy/MM/dd hh:mm:ss");
var date=
new Date(yyyy,MM-1,dd,hh,mm,ss);
說明:1. 如果不關心時分秒,可省略
2. 如果使用數字設定時間,月份要-1
3. 複製日期對象:
為什麼?因為日期的計算,都是直接修改原日期對象。
何時複製: 如果希望同時保留開始時間和截止時間時,都要先複製,再計算。
如何複製:
var date1=new Date();
var date2=new Date(date1.getTime());
說明,.getTime()可省略
原理: 日期對象中儲存的其實是一個巨大的毫秒數。是1970年1月1日0點至今的毫秒數。

API:
分量:FullYear Month Date Day
Hours Minutes Seconds Milliseconds
1.每個分量都有一對兒getXXX/setXXX方法
其中,getXXX方法負責擷取指定分量的值
setXXX方法負責修改指定分量的值
例外:星期Day沒有setDay方法
2.命名: 年月日星期,沒有s結尾
時分秒毫秒,都有s結尾
3.取值範圍(傳回值):
只有月中的日Date 從1~31結束
其餘都是從0~進位-1結束
*Month: 0~11 需要修正: 電腦中的月份,比現實中的月份少1
Date: 1~31 不用修正
Day: 0~6 不用修正: 星期日是第一天0
Hours: 0~23 不用修正
Minutes/Seconds: 0~59 不用修改

日期計算:
1. 兩個日期對象可相減:得到毫秒差
2. 對任意分量做加減:3步:
1.取分量: var n=date.getXXX();
2.做加減: n+=x;
3.放回去: date.setXXX(n);
說明:1. setXXX方法可自動調整時間
2. setXXX方法直接修改原日期
簡版公式:date.setXXX(date.getXXX()+n)

日期轉字串:
date.toGMTString();轉為中國標準時間格式
date.toLocaleString();轉為當地時間格式
date.toLocaleDateString();僅保留日期
date.toLocaleTimeString();僅保留時間

 



 

JavaScript筆記(五)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.