這次的這篇文章向大家分享的內容是關於js的引用類型,有需要的朋友們可以看看
#引用類型的值(物件)是引用類型的一個實例,,在js 裡引用類型是一種資料結構,通常被稱為類,es6似乎加了類這個概念,
1:object是一個基礎類,其他所有類型都從object繼承了基本行為,
js在使用typeof 方法時,Array 也是回傳object,可以用isArray()來判斷是不是Array型別
2.Array型別
改變原陣列的方法即改變原型鏈上的初始陣列
push():在陣列末端新增陣列元素,傳回新的陣列長度
陣列的最後一項,返回刪除項目
shift():刪除陣列第一項,返回刪除項目
unShift():在陣列前端增加陣列元素,回傳陣列長度
reverse():反轉陣列順序
sort():陣列的排序方法,會呼叫陣列每項的toString(),用於比較,所以成了字串的比較,最好傳給其一個比較函數
例如:
function compare(value1,value2){ if(value1<value2){ return -1; }else if(value1>value2){ return 1; }else{ return 0; } }
如果都數值類型的可以傳一個較為簡單的額函數
function compare(value1,value2) { return value2-value1; }
concat():講接收到的參數加到陣列結尾,回傳新的陣列
splice( ):返回刪除項,如果沒有,則返回空數組
可以利用splice()進行數組的刪除,添加,添加
刪除:splice(0,2)刪除數組前兩項目
新增:splice(2,0,"red","green")在Array[2]後插入 "red","green"兩項
替換:splice(2 ,1,"red")將Array[2]替換成"red"
以上的方法都會改變原始數組
以下的方法不會改變原始數組
slice(0,2):返回數組前兩項
數組的迭代方法every(), filter(),forEach(),map(),some()
他們的參數都是函數
(item,index,array) =>{ }
#其中every()和some()回傳true or false
filter()傳回滿足傳入函數的陣列元素,
forEach()沒有傳回值,
map()傳回呼叫函數後的陣列
歸併方法:reduce()和reduceRight()
從左到右遍歷數組每一項,redeuceRight()則從右到左
接受兩個參數,一個函數,一個初始值(可選)
例如:
let values=[1,2,3,4] let sun=values.reduce((prev,cur,index,arr)=>{ return prev+cur },0)
#function類型
##函數名其實也是指向函數物件的指針,與指向物件的變數名稱沒有什麼不同
改變函數內部的this指向
call(),apply()和bind()
window.color="red" let o={color:"blue"} function sayColor() { alert(this.color) } sayColor.call(this)//red sayColor.call(window)//red sayColor.call(o)//bluebind()會建立一個函數的實例,其this值會指向被綁定到傳給bind()函數的值bind(誰),函數this就指向誰
基本包裝類型
js給string ,num等創造了對應的基本包裝類型,所以才能呼叫一些方法string方法charAt( 1):傳回位置」1「的字元charCodeAt(1):傳回位置」1「的字元編碼concat()連結字串,不過度使用的是」+「slice(start,end):截取字串,end不傳,預設到結束位置,參數為負數,轉為(字元長度+負數)substr(start,length) :截取字串,length不傳,預設到結束,參數為負數轉為(字元長度+負數)substring(start,afterend):afterend不傳,預設到結束,負數轉為0,會將較小的數字作為開始位置
trim():刪除字串前後空格split(",")以”,“分割成數組split(",",2)取分割後陣列的前兩項Math 方法Math.ceil():向上取整Math .floor():向下取整Math.round():四捨五入
以上是js 的引用型的詳細內容。更多資訊請關注PHP中文網其他相關文章!