js 學(xué)習(xí)筆記(三)
(1) 封裝——把相關(guān)的信息(無(wú)論數(shù)據(jù)或方法)存儲(chǔ)在對(duì)象中的能力。
(2) 聚集——把一個(gè)對(duì)象存儲(chǔ)在另一個(gè)對(duì)象內(nèi)的能力。
(3) 繼承——由另一個(gè)類(lèi)(或多個(gè)類(lèi))得來(lái)類(lèi)的屬性和方法的能力。
(4) 多態(tài)——編寫(xiě)能以多種方法運(yùn)行的函數(shù)或方法的能力。
對(duì)象的類(lèi)型
1.本地對(duì)象
①Array類(lèi)
②Date類(lèi)
2.內(nèi)置對(duì)象
3.宿主對(duì)象
Array類(lèi)
toString()方法和valueOf()方法,返回特殊的字符串。該字符串是通過(guò)對(duì)每項(xiàng)調(diào)用toString()方法,然后用逗號(hào)把它們連接在一起構(gòu)成的。例如,對(duì)具有項(xiàng)"red"、"green"和"blue"的數(shù)組調(diào)用toString()方法或valueOf()方法,返回的是字符串"red,green,blue"。
join()方法唯一的用途就是連接字符串值。join()方法只有一個(gè)參數(shù),即數(shù)組項(xiàng)之間使用的字符串。
split()方法將字符串轉(zhuǎn)換成數(shù)組,split()方法只有一個(gè)參數(shù),就是被看作數(shù)組項(xiàng)之間的分隔符的字符串。如果把空字符串聲明為分隔符,那么split()方法返回的數(shù)組中的每個(gè)項(xiàng)是字符串的字符。
concat()方法處理數(shù)組的方式幾乎與它處理字符串的方式完全一樣。參數(shù)將被附加在數(shù)組末尾,返回的函數(shù)值是新的Array對(duì)象(包括原始數(shù)組中的項(xiàng)和新的項(xiàng))。
slice()方法接受一個(gè)或兩個(gè)參數(shù),即要提取的項(xiàng)的起始位置和結(jié)束位置。如果只有一個(gè)參數(shù),該方法將返回從該位置開(kāi)始到數(shù)組結(jié)尾的所有項(xiàng);如果有兩個(gè)參數(shù),該方法將返回第一個(gè)位置和第二個(gè)位置間的所有項(xiàng),不包括第二個(gè)位置處的項(xiàng)。
unshift()方法,它把一個(gè)項(xiàng)放在數(shù)組的第一個(gè)位置,然后把余下的項(xiàng)向下移動(dòng)一個(gè)位置。
reverse()方法顛倒數(shù)組項(xiàng)的順序。
sort()方法將根據(jù)數(shù)組項(xiàng)的值按升序?yàn)樗鼈兣判?。(注意:只是?duì)字符串代碼的排序,數(shù)字?jǐn)?shù)組的排序需要另解)
splice()方法最復(fù)雜的方法,把數(shù)據(jù)項(xiàng)插入數(shù)組的中部。
1.刪除——只需要聲明兩個(gè)參數(shù),就可以從數(shù)組中刪除任意多個(gè)項(xiàng),這兩個(gè)參數(shù)是要?jiǎng)h除的第一個(gè)項(xiàng)的位置和要?jiǎng)h除的項(xiàng)的個(gè)數(shù)。例如arr.splice(0,2)將刪除數(shù)組arr中的前兩項(xiàng)。
2.替換而不刪除——聲明三個(gè)參數(shù)就可以把數(shù)據(jù)項(xiàng)插入指定的位置,這三個(gè)參數(shù)是起始位置、0(要?jiǎng)h除的數(shù)組項(xiàng)的個(gè)數(shù))和要插入的項(xiàng)。此外,還可以用第四個(gè)、第五個(gè)或更多個(gè)參數(shù)指定其他要插入的項(xiàng)。例如,arr.splice(2,0,"red", "green")將在位置2處插入"red"和"green"。
3.替換并刪除——聲明三個(gè)參數(shù)就可以把數(shù)據(jù)項(xiàng)插入指定的位置,這三個(gè)參數(shù)是起始位置、要?jiǎng)h除的數(shù)組項(xiàng)的個(gè)數(shù)以及要插入的項(xiàng)。此外,還可以指定要插入的更多的項(xiàng)。要插入的項(xiàng)的個(gè)數(shù)不必等于刪除的項(xiàng)的個(gè)數(shù)。例如,arr.splice(2,1, "red","green")將刪除數(shù)組arr中位置2處的項(xiàng),然后在位置2處插入"red"和"green"。
棧和隊(duì)列的概念
區(qū)別一
棧:后進(jìn)先出(LIFO)結(jié)構(gòu),先添加的項(xiàng)先刪除,棧中的插入和刪除都只發(fā)生在棧頂部。
隊(duì)列:先進(jìn)先出(FIFO)結(jié)構(gòu),先添加的項(xiàng)最后刪除,元素的插入操作只發(fā)生在隊(duì)列的尾部,而刪除操作則發(fā)生在隊(duì)列的頭部。
區(qū)別二
棧:頂部添加項(xiàng)叫“推入?!保瑒h除頂部項(xiàng)叫“彈出?!?。
隊(duì)列:隊(duì)尾添加項(xiàng)叫“put”或“入隊(duì)”,隊(duì)頭刪除項(xiàng)叫“get”或“出隊(duì)”。
在Array類(lèi)中的運(yùn)用
棧:push()方法用于在Array結(jié)尾添加一個(gè)或多個(gè)項(xiàng),pop()方法用于刪除最后一個(gè)數(shù)組項(xiàng)(length-1),返回它作為函數(shù)值。
隊(duì)列:push()方法把數(shù)據(jù)項(xiàng)加入隊(duì)列(即在數(shù)組結(jié)尾添加數(shù)據(jù)項(xiàng)),shift()方法將刪除數(shù)組中的第一個(gè)項(xiàng),將其作為函數(shù)值返回。
Date類(lèi)
Date類(lèi)的方法(列在下表中)均用于設(shè)置或獲取日期值的某部分。
方 法 |
說(shuō) 明 |
toLocaleDateString() |
以地點(diǎn)特定的格式顯示Date的時(shí)間部分 |
getTime() |
返回日期的毫秒表示 |
setTime(milliseconds) |
設(shè)置日期的毫秒表示 |
getFullYear() |
返回用四位數(shù)字表示的日期的年份(如2004而不只是04) |
getUTCFullYear() |
返回用四位數(shù)字表示的UTC日期的年份 |
setFullYear(year) |
設(shè)置日期的年份,參數(shù)必須是四位數(shù)字的年份值 |
setUTCFullYear(year) |
設(shè)置UTC日期的年份,參數(shù)必須是四位數(shù)字的年份值 |
getMonth() |
返回日期的月份值,由數(shù)字0(1月)到11(12月)表示 |
getUTCMonth() |
返回UTC日期的月份值,由數(shù)字0(1月)到11(12月)表示 |
setMonth(month) |
設(shè)置日期的月份為大于等于0的數(shù)字。對(duì)于大于11的數(shù)字,開(kāi)始累計(jì)年數(shù) |
setUTCMonth(month) |
設(shè)置UTC日期的月份為大于等于0的數(shù)字。對(duì)于大于11的數(shù)字,開(kāi)始累計(jì)年數(shù) |
getDate() |
返回該日期該月中的某天 |
getUTCDate() |
返回該UTC日期該月中的某天 |
setDate(date) |
設(shè)置該日期該月中的某天 |
setUTCDate(date) |
設(shè)置該UTC日期該月中的某天 |
getDay() |
返回該日期為星期幾 |
getUTCDay() |
返回該UTC日期為星期幾 |
setDay(day) |
設(shè)置該日期為星期幾 |
setUTCDay(day) |
設(shè)置該UTC日期為星期幾 |
getHours() |
返回日期中的小時(shí)值 |
getUTCHours() |
返回UTC日期中的小時(shí)值 |
setHours(hours) |
設(shè)置日期中的小時(shí)值 |
setUTCHours(hours) |
設(shè)置UTC日期中的小時(shí)值 |
getMinutes() |
返回日期中的分鐘值 |
getUTCMinutes() |
返回UTC日期中的分鐘值 |
setMinutes(minutes) |
設(shè)置日期中的分鐘值 |
setUTCMinutes(minutes) |
設(shè)置UTC日期中的分鐘值 |
getSeconds() |
返回日期中的秒值 |
getUTCSeconds () |
返回UTC日期中的秒值 |
setSeconds (seconds) |
設(shè)置日期中的秒值 |
setUTCSeconds (seconds) |
設(shè)置UTC日期中的秒值 |
getMilliseconds() |
返回日期中的毫秒值。注意,這不是自1970年1月1日以后的毫秒值,而是當(dāng)前時(shí)間中的毫秒值,例如4 :55 :34.20,其中20即為時(shí)間的毫秒值 |
getUTCMilliseconds () |
返回UTC日期中的毫秒值 |
setMilliseconds (milliseconds) |
設(shè)置日期中的毫秒值 |
setUTCMilliseconds (milliseconds) |
設(shè)置UTC日期中的毫秒值 |
相關(guān)文章
JavaScript實(shí)現(xiàn)像雪花一樣的Hexaflake分形
這篇文章主要介紹了JavaScript實(shí)現(xiàn)像雪花一樣的Hexaflake分形,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07微信小程序動(dòng)態(tài)添加和刪除組件的現(xiàn)實(shí)
這篇文章主要介紹了微信小程序動(dòng)態(tài)添加和刪除組件的現(xiàn)實(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02基于JavaScript實(shí)現(xiàn)五子棋游戲
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11js+css實(shí)現(xiàn)三級(jí)導(dǎo)航菜單
這篇文章主要為大家詳細(xì)介紹了js+css實(shí)現(xiàn)三級(jí)導(dǎo)航菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08詳解微信小程序 頁(yè)面跳轉(zhuǎn) 傳遞參數(shù)
這篇文章主要介紹了詳解微信小程序 頁(yè)面跳轉(zhuǎn) 傳遞參數(shù),現(xiàn)在分享給大家,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-12-12Javascript中的for in循環(huán)和hasOwnProperty結(jié)合使用
當(dāng)檢測(cè)某個(gè)對(duì)象是否擁有某個(gè)屬性時(shí),hasOwnProperty 是唯一可以完成這一任務(wù)的方法,在 for in 循環(huán)時(shí),建議增加 hasOwnProperty 進(jìn)行判斷,可以有效避免擴(kuò)展本地原型而引起的錯(cuò)誤2013-06-06wavesurfer.js繪制音頻波形圖的實(shí)現(xiàn)
這篇文章主要介紹了wavesurfer.js繪制音頻波形圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04JS實(shí)現(xiàn)瀏覽器打印、打印預(yù)覽示例
本篇文章主要介紹了JS實(shí)現(xiàn)瀏覽器打印、打印預(yù)覽示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02