- 相關(guān)推薦
JavaScript入門教程之引用類型
引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起。它也常被稱為類,但這種稱呼并不妥當(dāng)。盡管 ECMAScript從技術(shù)上講是一門面向?qū)ο蟮恼Z(yǔ)言,但它不具備傳統(tǒng)的面向?qū)ο笳Z(yǔ)言所支持的類和接口等基本結(jié)構(gòu)。引用類型有時(shí)候也被稱為對(duì)象定義,因?yàn)樗鼈兠枋龅氖且活悓?duì)象所具有的屬性和方法。
前面提到過(guò),引用類型的值便是對(duì)象,在ECMAScript中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),用于將數(shù)據(jù)和功能組織在一起,而對(duì)象則是某個(gè)特定引用類型的實(shí)例。
var a=new Object();
上面便聲明了一個(gè)引用類型為Object的實(shí)例,并將這個(gè)實(shí)例存儲(chǔ)到變量a中,也就是說(shuō)這個(gè)變量實(shí)際是并不是包含了這個(gè)實(shí)例本身,而是指向這個(gè)實(shí)例的指針。
對(duì)于Object類型,常用對(duì)象字面量表示法來(lái)創(chuàng)建實(shí)例 既var a={name:"Nick",age:20}這樣做的優(yōu)點(diǎn)是給人封裝的感覺(jué)。而對(duì)象的訪問(wèn)則是使用了點(diǎn)表示法或者方括號(hào)表示法。a.name等價(jià)于a["name"],注意此處的"name"是以字符串表示的。
對(duì)于Array類型,則可以使用數(shù)組字面量表示法。
對(duì)于Array類型,可以使用length來(lái)改變數(shù)組的長(zhǎng)度。(從數(shù)組的末尾添加或者移除項(xiàng))
檢測(cè)數(shù)組的方法是Array.isArray(value)方法
轉(zhuǎn)換方法:toString()轉(zhuǎn)換成以“,”分割各項(xiàng)的一個(gè)字符串。valueOf(),返回的依舊是數(shù)組。toLocaleString()可以用下例實(shí)現(xiàn)。
var p1={toString:function(){return "guo";},toLocaleString:function(){return "yuzhe";}}var p2={toString:function(){return "song";},toLocaleString:function(){return "hap";}}var p=[p1,p2];alert(p); //guo,songalert(p.toLocaleString()); //yuzhe,hap
可見(jiàn) alert在輸出前先調(diào)用了toString()方法,此外還有join()方法,用于以指定的符號(hào)返回成字符串 ,其默認(rèn)的(不設(shè)置參數(shù))為“,”。
棧方法:push()在末尾添加項(xiàng),返回?cái)?shù)組長(zhǎng)度。pop()在末尾刪除項(xiàng),返回刪除項(xiàng)。
隊(duì)列方法:shift()溢出數(shù)組第一項(xiàng),返回該項(xiàng)。unshift()在首段添加項(xiàng),返回?cái)?shù)組長(zhǎng)度。
重排序方法(返回值為數(shù)組):
reverse()反轉(zhuǎn)順序。a[length-1]=a[0]
sort()升序排序法 默認(rèn)的sort()是以ASCII排序的,而非我們認(rèn)為的數(shù)字大小,所以比較大小需要這樣使用
function compare(no1,no2){if(no1no2){return 1;}else{return 0;} }var a=[1,2,3,4,6,5];a.sort(compare);alert(a)
若想產(chǎn)生降序效果,只需反轉(zhuǎn)if語(yǔ)句。
操作方法:
concat()創(chuàng)建了一個(gè)副本,對(duì)原數(shù)組無(wú)影響,作用是添加接受的參數(shù)到數(shù)組的末尾。
slice()創(chuàng)建一個(gè)副本,接受1或者2個(gè)參數(shù)(返回項(xiàng)的起始和結(jié)束位置,不包含結(jié)束位置),在只有一個(gè)參數(shù)的情況下,返回從指定位置到結(jié)尾所有項(xiàng)。如果參數(shù)為負(fù)數(shù),則結(jié)果為length+arguments,若結(jié)束位置小于起始位置,則返回空數(shù)組。
splice():1.刪除方法--指定兩個(gè)參數(shù),刪除的第一項(xiàng)的位置和刪除的項(xiàng)數(shù)。
2.插入方法--指定三個(gè)參數(shù),起始位置,0(要?jiǎng)h除的個(gè)數(shù)),要插入的項(xiàng)。
3.替換方法--指定三個(gè)參數(shù),起始位置,刪除的個(gè)數(shù),要插入的項(xiàng)
插入/替換的位置是起始位置。
位置方法:
indexOf()返回要查找的項(xiàng)的數(shù)組下表,沒(méi)有則返回-1.參數(shù):要查找的項(xiàng)和(可選的)查找起點(diǎn)位置的索引(下標(biāo))。
lastIndexOf()是indexOf()的逆序。
迭代方法:
2個(gè)參數(shù):要運(yùn)行的函數(shù)和(可選的)的作用域,傳入這些方法中的函數(shù)需要有三個(gè)參數(shù)(item(數(shù)組項(xiàng)的值),index(該項(xiàng)的位置),array(數(shù)組對(duì)象本身)).
every()對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),每一項(xiàng)都返回ture 則返回true
filter()返回會(huì)返回true的項(xiàng)組成的數(shù)組
forEach()對(duì)每一項(xiàng)運(yùn)行給定函數(shù),無(wú)返回值
map()返回每次函數(shù)執(zhí)行結(jié)果組成的數(shù)組
some()若有一項(xiàng)為true,則返回true
var a=[1,2,3,4];var b=a.every(function(item,index,array){return item>2;});alert(b); //false
歸并方法:
reduce()從數(shù)字第一項(xiàng)開(kāi)始遍歷,reduceRight()從數(shù)組最后一項(xiàng)開(kāi)始遍歷
使用reduce()來(lái)求數(shù)組中的所有和
var a=[1,2,3,4];var b=a.reduce(function(prve,cur,index,array){return prve+cur;});alert(b); //10 第一次執(zhí)行時(shí),prev為1,cur為2 ,第二次執(zhí)行時(shí),prev為3,cur為3。 以上所述是小編給大家介紹的JavaScript入門教程之引用類型的相關(guān)內(nèi)容,希望對(duì)大家有所幫助!
【JavaScript入門教程之引用類型】相關(guān)文章:
關(guān)于數(shù)據(jù)類型的Javascript學(xué)習(xí)筆記08-05
常用排序算法之JavaScript實(shí)現(xiàn)代碼段06-04
對(duì)javascript的理解08-08
平面設(shè)計(jì)之線的風(fēng)格類型與作用10-05
梵語(yǔ)入門教程08-20
CSS入門教程01-25
小升初語(yǔ)文復(fù)習(xí)之常見(jiàn)病句類型歸納10-20
常用的JavaScript模式09-22