最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

《JavaScript高級編程》學(xué)習(xí)筆記之object和array引用類型_javascript技巧

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:45:01
文檔

《JavaScript高級編程》學(xué)習(xí)筆記之object和array引用類型_javascript技巧

《JavaScript高級編程》學(xué)習(xí)筆記之object和array引用類型_javascript技巧:本文給大家分享我的javascript高級編程學(xué)習(xí)筆記之object和array引用類型,涉及到j(luò)avascript引用類型相關(guān)知識,大家一起看看把。 1. Object類型 大多數(shù)引用類型值都是Object類型的實(shí)例;而且Object也是ECMAScript中使用最多的一個(gè)類型。 創(chuàng)建
推薦度:
導(dǎo)讀《JavaScript高級編程》學(xué)習(xí)筆記之object和array引用類型_javascript技巧:本文給大家分享我的javascript高級編程學(xué)習(xí)筆記之object和array引用類型,涉及到j(luò)avascript引用類型相關(guān)知識,大家一起看看把。 1. Object類型 大多數(shù)引用類型值都是Object類型的實(shí)例;而且Object也是ECMAScript中使用最多的一個(gè)類型。 創(chuàng)建

本文給大家分享我的javascript高級編程學(xué)習(xí)筆記之object和array引用類型,涉及到j(luò)avascript引用類型相關(guān)知識,大家一起看看把。

1. Object類型

大多數(shù)引用類型值都是Object類型的實(shí)例;而且Object也是ECMAScript中使用最多的一個(gè)類型。

創(chuàng)建Object實(shí)例有如下兩種方式:

new操作符后跟Object構(gòu)造函數(shù):

對象字面量表示法:

2. Array類型

除了Object之外,Array類型恐怕是ECMAScript中最常用的類型了。
ECMAScript數(shù)組的每一項(xiàng)可以保存任何類型的數(shù)據(jù)(例如,第一個(gè)位置可存放字符串,第二個(gè)位置保存數(shù)值,第三個(gè)位置保存對象,以此類推)。而且ECMAScript數(shù)組的大小是可以動(dòng)態(tài)調(diào)整的,即可以隨著數(shù)據(jù)的添加自動(dòng)增長以容納新增數(shù)據(jù)。

創(chuàng)建數(shù)組的基本方式有兩種,

使用Array構(gòu)造函數(shù):

數(shù)組字面量表示法

注:數(shù)組的length屬性很有特點(diǎn)——它不是只讀的。因此通過設(shè)置這個(gè)屬性,可以從數(shù)組的末尾移除或添加項(xiàng)。例如,

2.1 檢測數(shù)組

對于一個(gè)網(wǎng)頁,或者一個(gè)全局作用域而言,使用instanceof操作符就能判斷某個(gè)對象是不是數(shù)組:

instanceof操作符的問題在于,它假定只有一個(gè)全局執(zhí)行環(huán)境。如果網(wǎng)頁中包含多個(gè)框架,那實(shí)際上就存在兩個(gè)以上不同的全局執(zhí)行環(huán)境,從而存在兩個(gè)以上不同版本的Array構(gòu)造函數(shù)。如果你從一個(gè)框架向另一個(gè)框架傳入一個(gè)數(shù)組,那么傳入的數(shù)組與在第二個(gè)框架中原生創(chuàng)建的數(shù)組分別具有各自不同的構(gòu)造函數(shù)。

為了解決這個(gè)問題,ECMAScript5新增了Array.isArray( )方法。這個(gè)方法的目的是最終確定某個(gè)值到底是不是數(shù)組,而不管它是在哪個(gè)全局執(zhí)行環(huán)境中創(chuàng)建的,

支持該方法的瀏覽器有IE9+、Firefox 4+、Safari 5+、Opera 10.5+和Chrome。

2.2 轉(zhuǎn)換方法

調(diào)用數(shù)組的toString( )方法會返回由數(shù)組中每個(gè)值的字符串形式拼接而成的一個(gè)以逗號分隔的字符串。而調(diào)用valueOf( )返回的還是數(shù)組。實(shí)際上,為了創(chuàng)建這個(gè)字符串會調(diào)用數(shù)組每一項(xiàng)的toString( )方法。例如,

另外,toLocaleString( )方法經(jīng)常也會返回與toString( )和valueOf( )方法相同的值,但也不總是如此。當(dāng)調(diào)用數(shù)組的toLocaleString( )方法時(shí),它也會創(chuàng)建一個(gè)數(shù)組值的以逗號分隔的字符串。而與前兩個(gè)方法唯一的不同之處在于,這一次為了取得每一項(xiàng)的值,調(diào)用的是每一項(xiàng)的toLocaleString( )方法,而不是toString( )方法。

輸出數(shù)組,并可指定分隔符,默認(rèn)為逗號: var colors=["red","blue","green"]; alert(colors.join(",")); //red,blue,green alert(colors.join("||")); //red||blue||green

2.3 棧方法(LIFO)

push( ):接受任意數(shù)量的參數(shù),把它們逐個(gè)添加到數(shù)組末尾,并返回修改后數(shù)組的長度;
pop( ):從數(shù)組末尾移除最后一項(xiàng)

2.4 隊(duì)列方法(FIFO)

shift( ):移除數(shù)組的第一項(xiàng)并返回該項(xiàng),同時(shí)數(shù)組長度減1;
unshift( ):顧名思義,與shift( )用途相反,能在數(shù)組前端添加任意個(gè)項(xiàng)并返回?cái)?shù)組的長度。

2.5 重排序方法

reverse( ):反轉(zhuǎn)數(shù)組項(xiàng)的順序;

sort( ):默認(rèn)按升序排列;為了實(shí)現(xiàn)排序,sort( )方法會調(diào)用每項(xiàng)的toString( )方法,然后比較得到的字符串,以確定如何排序。即使每一項(xiàng)都是數(shù)值,比較的也是字符串,如下所示。

這種排序方式在很多情況下都不是最佳方案。因此sort( )方法可以接受一個(gè)比較函數(shù)作為參數(shù),以便指定哪個(gè)值位于哪個(gè)值的前面。

這個(gè)比較函數(shù)可以適用大多數(shù)據(jù)類型,只要將其作為參數(shù)傳遞給sort( )方法即可,如下,


2.6 操作方法

concat( ):基于當(dāng)前數(shù)組中的所有項(xiàng)創(chuàng)建一個(gè)新數(shù)組。例如,

slice( ):基于當(dāng)前數(shù)組中的一個(gè)或多個(gè)項(xiàng)創(chuàng)建一個(gè)新數(shù)組。例如,

splice( ):這個(gè)方法恐怕是最強(qiáng)大的數(shù)組方法了,主要用途是向數(shù)組的中部插入項(xiàng),但使用這種方法的方式則有如下2種。

刪除:可以刪除任意數(shù)量的項(xiàng),只需指定2個(gè)參數(shù):要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)。

插入:可以向指定位置插入任意數(shù)量的項(xiàng),只需提供3個(gè)參數(shù):起始位置、0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng)。如果要插入多個(gè)項(xiàng),可以再傳第四、第五以至任意多個(gè)項(xiàng);例如,splice(2,0,"red","green")會從當(dāng)前數(shù)組的位置2開始插入字符串"red"和"green"。

splice( )方法始終都會返回一個(gè)數(shù)組,包含從原始數(shù)組中刪除的項(xiàng)(如果沒有刪除任何項(xiàng),則返回空數(shù)組)。

2.7 位置方法

indexOf( )和lastIndexOf( ):這兩個(gè)方法都接受兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。前者從開頭開始向后查找,后者從末尾向前查找

2.8 迭代方法

ECMAScript5為數(shù)組定義了5個(gè)迭代方法,每個(gè)方法都接受兩個(gè)參數(shù):要在每一項(xiàng)上運(yùn)行的函數(shù)和(可選的)運(yùn)行該函數(shù)的作用域?qū)ο蟆绊憈his的值。傳入這些方法中的函數(shù)會接收三個(gè)參數(shù):數(shù)組項(xiàng)的值、該項(xiàng)在數(shù)組中的位置和數(shù)組對象本身。

every( ):對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對每一項(xiàng)都返回true,則返回true。
filter( ):對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會返回true的項(xiàng)組成的數(shù)組。
forEach( ):對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),這個(gè)方法無返回值。
map( ):對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
some( ):對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對任一項(xiàng)返回true,則返回true。

以上方法都不會修改數(shù)組中包含的值。例如,

2.9 歸并方法

reduce( ):從數(shù)組的第一項(xiàng)開始,逐個(gè)遍歷到最后;
reduceRight( ):從數(shù)組的最后一項(xiàng)開始,向前遍歷到第一項(xiàng)。
這兩個(gè)方法都接受兩個(gè)參數(shù):一個(gè)在每一項(xiàng)上調(diào)用的函數(shù)和(可選的)作為歸并基礎(chǔ)的初始值。傳給這些方法的函數(shù)接受4個(gè)參數(shù):前一個(gè)值、當(dāng)前值、項(xiàng)的索引和數(shù)組對象。這個(gè)函數(shù)返回的任何值都會作為第一個(gè)參數(shù)傳給下一項(xiàng)。例如,

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

《JavaScript高級編程》學(xué)習(xí)筆記之object和array引用類型_javascript技巧

《JavaScript高級編程》學(xué)習(xí)筆記之object和array引用類型_javascript技巧:本文給大家分享我的javascript高級編程學(xué)習(xí)筆記之object和array引用類型,涉及到j(luò)avascript引用類型相關(guān)知識,大家一起看看把。 1. Object類型 大多數(shù)引用類型值都是Object類型的實(shí)例;而且Object也是ECMAScript中使用最多的一個(gè)類型。 創(chuàng)建
推薦度:
標(biāo)簽: 筆記 javascript object
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top