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,song alert(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(no1<no2){ return -1;} else if(no1>no2){ 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
<script> var a=[1,2,3,4]; var b=a.every(function(item,index,array){ return item>2; }); alert(b); //false </script>
歸并方法:
reduce()從數(shù)字第一項(xiàng)開(kāi)始遍歷,reduceRight()從數(shù)組最后一項(xiàng)開(kāi)始遍歷
使用reduce()來(lái)求數(shù)組中的所有和
<script> 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之引用類型介紹
- Js從頭學(xué)起(基本數(shù)據(jù)類型和引用類型的參數(shù)傳遞詳細(xì)分析)
- js中的值類型和引用類型小結(jié) 文字說(shuō)明與實(shí)例
- JavaScript中值類型與引用類型實(shí)例說(shuō)明
- js類型轉(zhuǎn)換與引用類型詳解(Boolean_Number_String)
- js中判斷Object、Array、Function等引用類型對(duì)象是否相等
- JavaScript學(xué)習(xí)筆記整理之引用類型
- JavaScript引用類型和基本類型詳解
- 詳解JavaScript基本類型和引用類型
- JavaScript基礎(chǔ)篇(3)之Object、Function等引用類型
- 跟我學(xué)習(xí)javascript的基本類型和引用類型
- 《JavaScript高級(jí)編程》學(xué)習(xí)筆記之object和array引用類型
- javascript引用類型指針的工作方式
- JavaScript中各種引用類型的常用操作方法小結(jié)
相關(guān)文章
js實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09詳談javascript精度問(wèn)題與調(diào)整
下面小編就為大家?guī)?lái)一篇詳談javascript精度問(wèn)題與調(diào)整。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07詳細(xì)分析Javascript中創(chuàng)建對(duì)象的四種方式
這篇文章詳細(xì)介紹了Javascript中創(chuàng)建對(duì)象的幾種方式與每種方式的優(yōu)缺點(diǎn),其中包括工廠模式、構(gòu)造函數(shù)模式、原型模式和組合使用構(gòu)造函數(shù)模式和原型模式,有需要的小伙伴們一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2016-08-08javascript AutoScroller 函數(shù)類
javascript AutoScroller 自動(dòng)滾動(dòng)類代碼,學(xué)習(xí)類的朋友可以參考下。2009-05-05