引用類型
引用類型是一種數據結構,用於將數據和功能組織在一起。它也常被稱為類,但這種稱呼並不妥當。盡管 ECMAScript從技術上講是一門面向對象的語言,但它不具備傳統的面向對象語言所支持的類和接口等基本結構。引用類型有時候也被稱為對象定義,因為它們描述的是一類對象所具有的屬性和方法。
前面提到過,引用類型的值便是對象,在ECMAScript中,引用類型是一種數據結構,用於將數據和功能組織在一起,而對象則是某個特定引用類型的實例。
var a=new Object();
上面便聲明了一個引用類型為Object的實例,並將這個實例存儲到變量a中,也就是說這個變量實際是並不是包含了這個實例本身,而是指向這個實例的指針。
對於Object類型,常用對象字面量表示法來創建實例 既var a={name:"Nick",age:20}這樣做的優點是給人封裝的感覺。而對象的訪問則是使用了點表示法或者方括號表示法。a.name等價於a["name"],注意此處的"name"是以字符串表示的。
對於Array類型,則可以使用數組字面量表示法。
對於Array類型,可以使用length來改變數組的長度。(從數組的末尾添加或者移除項)
檢測數組的方法是Array.isArray(value)方法
轉換方法:toString()轉換成以“,”分割各項的一個字符串。valueOf(),返回的依舊是數組。toLocaleString()可以用下例實現。
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
可見 alert在輸出前先調用了toString()方法,此外還有join()方法,用於以指定的符號返回成字符串 ,其默認的(不設置參數)為“,”。
棧方法:push()在末尾添加項,返回數組長度。pop()在末尾刪除項,返回刪除項。
隊列方法:shift()溢出數組第一項,返回該項。unshift()在首段添加項,返回數組長度。
重排序方法(返回值為數組):
reverse()反轉順序。a[length-1]=a[0]
sort()升序排序法 默認的sort()是以ASCII排序的,而非我們認為的數字大小,所以比較大小需要這樣使用
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)
若想產生降序效果,只需反轉if語句。
操作方法:
concat()創建了一個副本,對原數組無影響,作用是添加接受的參數到數組的末尾。
slice()創建一個副本,接受1或者2個參數(返回項的起始和結束位置,不包含結束位置),在只有一個參數的情況下,返回從指定位置到結尾所有項。如果參數為負數,則結果為length+arguments,若結束位置小於起始位置,則返回空數組。
splice():1.刪除方法--指定兩個參數,刪除的第一項的位置和刪除的項數。
2.插入方法--指定三個參數,起始位置,0(要刪除的個數),要插入的項。
3.替換方法--指定三個參數,起始位置,刪除的個數,要插入的項
插入/替換的位置是起始位置。
位置方法:
indexOf()返回要查找的項的數組下表,沒有則返回-1.參數:要查找的項和(可選的)查找起點位置的索引(下標)。
lastIndexOf()是indexOf()的逆序。
迭代方法:
2個參數:要運行的函數和(可選的)的作用域,傳入這些方法中的函數需要有三個參數(item(數組項的值),index(該項的位置),array(數組對象本身)).
every()對數組中的每一項運行給定函數,每一項都返回ture 則返回true
filter()返回會返回true的項組成的數組
forEach()對每一項運行給定函數,無返回值
map()返回每次函數執行結果組成的數組
some()若有一項為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()從數字第一項開始遍歷,reduceRight()從數組最後一項開始遍歷
使用reduce()來求數組中的所有和
<script> var a=[1,2,3,4]; var b=a.reduce(function(prve,cur,index,array){ return prve+cur; }); alert(b); //10
第一次執行時,prev為1,cur為2 ,第二次執行時,prev為3,cur為3。
以上所述是小編給大家介紹的JavaScript入門教程之引用類型的相關內容,希望對大家有所幫助!