【web】javascript基礎鞏固——引用型別(二)
引用型別
1 引用型別是一種資料結構,從技術上講是一門面向物件的語言,但是不具備傳統的面向物件的語言所支援的類和介面等基本結構。
2 建立object例項有兩種方式:第一種使用new操作符後跟object建構函式;另一種是使用物件字面量表示法。物件字面量是物件定義的一種簡寫形式。
3 訪問物件的屬性有兩種方式:點表示法和方括號。方括號的主要優點是可以使用變數來訪問屬性。
4 Array型別:
- 陣列的每一項都可以儲存任何型別的資料
- 陣列的length屬性不是隻讀的,因此通過設定這個屬性,可以從陣列的末尾移除項或新增項。
- 檢測陣列:value instanceof Array 或者 Array.isArray()
- 轉換方法:toString()-返回的值用逗號分隔。valueOf(), toLocaleString()
- join()方法-使用不通分隔符構建字串
- 棧方法:陣列可以表現的像棧一樣,可以限制插入和刪除項的結構,push()和pop()方法
- 佇列方法:資料為了表現的像佇列,從列表的前端移除項,實現這一操作的方法是shift(),它能夠移除陣列中第一項並返回該項,同時陣列長度減去1
- 重排序方法:reverse():反轉順序,sort():預設升序排列,最小的值在最前面,為了實現排序,sort會呼叫每個陣列項的tostring()轉型方法,然後比較字串。原始陣列改變。
var value =[1,2,3,4,5,6]
value.sort(function(x,y){
return x>y
})
操作方法:
- concat(): 複製當前陣列並將收到的引數新增到末尾 colors. concat (‘1’,’2’,’3’)//原陣列不變
- slice(): 接受一個或兩個引數,即要返回值的起始和結束位置,不會改變原陣列。
splice()::會改變原陣列,並始終返回一個數組,陣列包含刪除的項
- 刪除:指定兩個引數:要刪除的第一項的位置和要刪除的項數:splice(0,2)會刪除前兩項。
- 插入:提供三項:起始位置,0(要刪除的項),和要插入的項。splice(2,0,’red’,’green’):從當前陣列的位置2插入字串‘red‘,green。
- 替換:指定三個引數:起始位置,要刪除項數,要插入的引數。
位置方法:indexOf(),lastIndexOf()這兩個方法都接受兩個引數,要查詢的項和表示查詢起點位置的索引,其中,indexof()方法從陣列開頭向後查詢,lastindexof從陣列的末尾向前查詢。這兩個方法都返回要查詢的項在陣列的位置。
- 歸併方法:reduce()/reduceRight()從第一項開始,遍歷到最後/相反。接受四個引數,前一個值,當前值,項的索引和陣列物件。
- 迭代方法:5個迭代方法每個方法都接受兩個引數,要在每一項上執行的函式和執行該函式的作用域物件,傳入這些方法的函式會接受三個引數,陣列項的值,該項在陣列中的位置和陣列物件本身。
- every()
- some()
- filter()
- forEach()
- map()
5 Date型別
- Date.parse():接受日期的字串引數,然後嘗試轉換為毫秒數
- Date.now():呼叫這個方法的日期和時間和毫秒數
- Date.toString():eg:”Thu Dec 14 2017 16:46:50 GMT+0800 (CST)”
注:沒有直接的毫秒數轉成特定日期格式的函式,需要自己寫
6 RegEXP型別
g:表示全域性模式
i:表示不區分大小寫
m:表示多行模式
var pattern = /pattern/flags
7.函式
- 函式是物件,函式名是指向物件的指標
函式內部屬性:argument,this
遞迴中使用:argument.callee指向函式名
函式的屬性:length和prototype屬性。
**prototype屬性中儲存了所有的例項方法**
函式的方法:apply()和call()
傳遞引數並非其真正用武之地,真正強大的地方是能夠擴充函式賴以執行的作用域最大的好處,就是物件不需要與方法有任何耦合的關係。
bind():建立函式的例項。
8 基本包裝型別
三個特殊的引用型別:boolean, number,string
Number:
num.toFixed()會按照指定的小數位返回數值的字串表示。
num.toExponential(1)接受一個引數,該引數同樣也是指定輸出結果重的小數位數。
num.toPrecision()
String:字元方法:str.charAt(1);//輸出該索引下的字元
str.charCodeAt(1)//輸出該索引下的字元編碼/或者直接用方括號。字串方法:concat()(一般用加號)
- slice()
- substr()
- substring()
字串位置方法:indexOf(),lastIndexOf()
- trim()方法:建立一個字串的副本,刪除前置及字尾的所有空格,然後返回結果。
字串大小寫轉換:
- toLowerCase()
- toLocaleLowerCase()
- toUpperCase()
- toLocaleUpperCase()
localeCompare()比較字串是否相等(相等則為0)
- fromCharCode()
- 單體內建物件:除了以上的內建物件外,又定義了兩個單體物件:Global和Math
Global:內建方法:encodeURI()和encodeURIComponent()方法(為了去除無效字元);
decodeURI(),decodeURIComponent()Global物件的屬性:undefined,NAN,Infinity…一些內建對像…..